lusid-sdk 2.1.571__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 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
@@ -1102,6 +1103,7 @@ from lusid.models.transaction_template_specification import TransactionTemplateS
1102
1103
  from lusid.models.transaction_type import TransactionType
1103
1104
  from lusid.models.transaction_type_alias import TransactionTypeAlias
1104
1105
  from lusid.models.transaction_type_calculation import TransactionTypeCalculation
1106
+ from lusid.models.transaction_type_details import TransactionTypeDetails
1105
1107
  from lusid.models.transaction_type_movement import TransactionTypeMovement
1106
1108
  from lusid.models.transaction_type_property_mapping import TransactionTypePropertyMapping
1107
1109
  from lusid.models.transaction_type_request import TransactionTypeRequest
@@ -1511,6 +1513,7 @@ __all__ = [
1511
1513
  "ConstantVolatilitySurface",
1512
1514
  "ConstituentsAdjustmentHeader",
1513
1515
  "ContractForDifference",
1516
+ "ContributionToNonPassingRuleDetail",
1514
1517
  "CorporateAction",
1515
1518
  "CorporateActionSource",
1516
1519
  "CorporateActionTransition",
@@ -2323,6 +2326,7 @@ __all__ = [
2323
2326
  "TransactionType",
2324
2327
  "TransactionTypeAlias",
2325
2328
  "TransactionTypeCalculation",
2329
+ "TransactionTypeDetails",
2326
2330
  "TransactionTypeMovement",
2327
2331
  "TransactionTypePropertyMapping",
2328
2332
  "TransactionTypeRequest",
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.7025\n"\
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
@@ -1021,6 +1022,7 @@ from lusid.models.transaction_template_specification import TransactionTemplateS
1021
1022
  from lusid.models.transaction_type import TransactionType
1022
1023
  from lusid.models.transaction_type_alias import TransactionTypeAlias
1023
1024
  from lusid.models.transaction_type_calculation import TransactionTypeCalculation
1025
+ from lusid.models.transaction_type_details import TransactionTypeDetails
1024
1026
  from lusid.models.transaction_type_movement import TransactionTypeMovement
1025
1027
  from lusid.models.transaction_type_property_mapping import TransactionTypePropertyMapping
1026
1028
  from lusid.models.transaction_type_request import TransactionTypeRequest
@@ -1350,6 +1352,7 @@ __all__ = [
1350
1352
  "ConstantVolatilitySurface",
1351
1353
  "ConstituentsAdjustmentHeader",
1352
1354
  "ContractForDifference",
1355
+ "ContributionToNonPassingRuleDetail",
1353
1356
  "CorporateAction",
1354
1357
  "CorporateActionSource",
1355
1358
  "CorporateActionTransition",
@@ -2162,6 +2165,7 @@ __all__ = [
2162
2165
  "TransactionType",
2163
2166
  "TransactionTypeAlias",
2164
2167
  "TransactionTypeCalculation",
2168
+ "TransactionTypeDetails",
2165
2169
  "TransactionTypeMovement",
2166
2170
  "TransactionTypePropertyMapping",
2167
2171
  "TransactionTypeRequest",
@@ -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 upfront amount.")
29
- currency: StrictStr = Field(..., description="The upfront currency.")
30
- pay_date: datetime = Field(..., alias="payDate", description="Date when the upfront is paid.")
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
 
@@ -26,15 +26,15 @@ class AggregateSpec(BaseModel):
26
26
  AggregateSpec
27
27
  """
28
28
  key: StrictStr = Field(..., description="The key that uniquely identifies a queryable address in Lusid.")
29
- op: StrictStr = Field(..., description="The available values are: Sum, Proportion, Average, Count, Min, Max, Value, SumOfPositiveValues, SumOfNegativeValues, SumOfAbsoluteValues, ProportionOfAbsoluteValues, SumCumulativeInAdvance, SumCumulativeInArrears")
29
+ op: StrictStr = Field(..., description="The available values are: Sum, DefaultSum, Proportion, Average, Count, Min, Max, Value, SumOfPositiveValues, SumOfNegativeValues, SumOfAbsoluteValues, ProportionOfAbsoluteValues, SumCumulativeInAdvance, SumCumulativeInArrears")
30
30
  options: Optional[Dict[str, Dict[str, Any]]] = Field(None, description="Additional options to apply when performing computations. Options that do not apply to the Key will be ignored. Option values can be boolean, numeric, string or date-time.")
31
31
  __properties = ["key", "op", "options"]
32
32
 
33
33
  @validator('op')
34
34
  def op_validate_enum(cls, value):
35
35
  """Validates the enum"""
36
- if value not in ('Sum', 'Proportion', 'Average', 'Count', 'Min', 'Max', 'Value', 'SumOfPositiveValues', 'SumOfNegativeValues', 'SumOfAbsoluteValues', 'ProportionOfAbsoluteValues', 'SumCumulativeInAdvance', 'SumCumulativeInArrears'):
37
- raise ValueError("must be one of enum values ('Sum', 'Proportion', 'Average', 'Count', 'Min', 'Max', 'Value', 'SumOfPositiveValues', 'SumOfNegativeValues', 'SumOfAbsoluteValues', 'ProportionOfAbsoluteValues', 'SumCumulativeInAdvance', 'SumCumulativeInArrears')")
36
+ if value not in ('Sum', 'DefaultSum', 'Proportion', 'Average', 'Count', 'Min', 'Max', 'Value', 'SumOfPositiveValues', 'SumOfNegativeValues', 'SumOfAbsoluteValues', 'ProportionOfAbsoluteValues', 'SumCumulativeInAdvance', 'SumCumulativeInArrears'):
37
+ raise ValueError("must be one of enum values ('Sum', 'DefaultSum', 'Proportion', 'Average', 'Count', 'Min', 'Max', 'Value', 'SumOfPositiveValues', 'SumOfNegativeValues', 'SumOfAbsoluteValues', 'ProportionOfAbsoluteValues', 'SumCumulativeInAdvance', 'SumCumulativeInArrears')")
38
38
  return value
39
39
 
40
40
  class Config:
@@ -30,6 +30,7 @@ class AggregationOp(str, Enum):
30
30
  allowed enum values
31
31
  """
32
32
  SUM = 'Sum'
33
+ DEFAULTSUM = 'DefaultSum'
33
34
  PROPORTION = 'Proportion'
34
35
  AVERAGE = 'Average'
35
36
  COUNT = 'Count'
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 then entity against which the cds is written.")
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():
@@ -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():
@@ -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 receive")
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
- __properties = ["id", "complianceState", "approvalState", "portfolioId", "portfolioName", "orderApprovalTaskId", "orderApprovalTaskDefinitionId"]
37
+ non_passing_compliance_rule_results: Optional[conlist(ContributionToNonPassingRuleDetail)] = Field(None, alias="nonPassingComplianceRuleResults", description="The details of compliance rules in non-passing states.")
38
+ __properties = ["id", "complianceState", "approvalState", "portfolioId", "portfolioName", "orderApprovalTaskId", "orderApprovalTaskDefinitionId", "nonPassingComplianceRuleResults"]
37
39
 
38
40
  class Config:
39
41
  """Pydantic configuration"""
@@ -68,6 +70,13 @@ class OrderGraphBlockOrderDetail(BaseModel):
68
70
  # override the default output from pydantic by calling `to_dict()` of order_approval_task_definition_id
69
71
  if self.order_approval_task_definition_id:
70
72
  _dict['orderApprovalTaskDefinitionId'] = self.order_approval_task_definition_id.to_dict()
73
+ # override the default output from pydantic by calling `to_dict()` of each item in non_passing_compliance_rule_results (list)
74
+ _items = []
75
+ if self.non_passing_compliance_rule_results:
76
+ for _item in self.non_passing_compliance_rule_results:
77
+ if _item:
78
+ _items.append(_item.to_dict())
79
+ _dict['nonPassingComplianceRuleResults'] = _items
71
80
  # set to None if portfolio_name (nullable) is None
72
81
  # and __fields_set__ contains the field
73
82
  if self.portfolio_name is None and "portfolio_name" in self.__fields_set__:
@@ -78,6 +87,11 @@ class OrderGraphBlockOrderDetail(BaseModel):
78
87
  if self.order_approval_task_id is None and "order_approval_task_id" in self.__fields_set__:
79
88
  _dict['orderApprovalTaskId'] = None
80
89
 
90
+ # set to None if non_passing_compliance_rule_results (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.non_passing_compliance_rule_results is None and "non_passing_compliance_rule_results" in self.__fields_set__:
93
+ _dict['nonPassingComplianceRuleResults'] = None
94
+
81
95
  return _dict
82
96
 
83
97
  @classmethod
@@ -96,6 +110,7 @@ class OrderGraphBlockOrderDetail(BaseModel):
96
110
  "portfolio_id": ResourceId.from_dict(obj.get("portfolioId")) if obj.get("portfolioId") is not None else None,
97
111
  "portfolio_name": obj.get("portfolioName"),
98
112
  "order_approval_task_id": obj.get("orderApprovalTaskId"),
99
- "order_approval_task_definition_id": ResourceId.from_dict(obj.get("orderApprovalTaskDefinitionId")) if obj.get("orderApprovalTaskDefinitionId") is not None else None
113
+ "order_approval_task_definition_id": ResourceId.from_dict(obj.get("orderApprovalTaskDefinitionId")) if obj.get("orderApprovalTaskDefinitionId") is not None else None,
114
+ "non_passing_compliance_rule_results": [ContributionToNonPassingRuleDetail.from_dict(_item) for _item in obj.get("nonPassingComplianceRuleResults")] if obj.get("nonPassingComplianceRuleResults") is not None else None
100
115
  })
101
116
  return _obj
@@ -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():
@@ -18,14 +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 BaseModel, Field, StrictFloat, StrictInt, StrictStr, constr, validator
21
+ from typing import Any, Dict, List, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
23
23
  from lusid.models.currency_and_amount import CurrencyAndAmount
24
24
  from lusid.models.custodian_account import CustodianAccount
25
25
  from lusid.models.otc_confirmation import OtcConfirmation
26
26
  from lusid.models.perpetual_property import PerpetualProperty
27
27
  from lusid.models.resource_id import ResourceId
28
+ from lusid.models.strategy import Strategy
28
29
  from lusid.models.transaction_price import TransactionPrice
30
+ from lusid.models.transaction_type_details import TransactionTypeDetails
29
31
 
30
32
  class Transaction(BaseModel):
31
33
  """
@@ -54,7 +56,9 @@ class Transaction(BaseModel):
54
56
  allocation_id: Optional[ResourceId] = Field(None, alias="allocationId")
55
57
  custodian_account: Optional[CustodianAccount] = Field(None, alias="custodianAccount")
56
58
  transaction_group_id: Optional[StrictStr] = Field(None, alias="transactionGroupId", description="The identifier for grouping economic events across multiple transactions")
57
- __properties = ["transactionId", "type", "instrumentIdentifiers", "instrumentScope", "instrumentUid", "transactionDate", "settlementDate", "units", "transactionPrice", "totalConsideration", "exchangeRate", "transactionCurrency", "properties", "counterpartyId", "source", "entryDateTime", "otcConfirmation", "transactionStatus", "cancelDateTime", "orderId", "allocationId", "custodianAccount", "transactionGroupId"]
59
+ strategy_tag: Optional[conlist(Strategy)] = Field(None, alias="strategyTag", description="A list of strategies representing the allocation of units across multiple sub-holding keys")
60
+ resolved_transaction_type_details: Optional[TransactionTypeDetails] = Field(None, alias="resolvedTransactionTypeDetails")
61
+ __properties = ["transactionId", "type", "instrumentIdentifiers", "instrumentScope", "instrumentUid", "transactionDate", "settlementDate", "units", "transactionPrice", "totalConsideration", "exchangeRate", "transactionCurrency", "properties", "counterpartyId", "source", "entryDateTime", "otcConfirmation", "transactionStatus", "cancelDateTime", "orderId", "allocationId", "custodianAccount", "transactionGroupId", "strategyTag", "resolvedTransactionTypeDetails"]
58
62
 
59
63
  @validator('transaction_status')
60
64
  def transaction_status_validate_enum(cls, value):
@@ -115,6 +119,16 @@ class Transaction(BaseModel):
115
119
  # override the default output from pydantic by calling `to_dict()` of custodian_account
116
120
  if self.custodian_account:
117
121
  _dict['custodianAccount'] = self.custodian_account.to_dict()
122
+ # override the default output from pydantic by calling `to_dict()` of each item in strategy_tag (list)
123
+ _items = []
124
+ if self.strategy_tag:
125
+ for _item in self.strategy_tag:
126
+ if _item:
127
+ _items.append(_item.to_dict())
128
+ _dict['strategyTag'] = _items
129
+ # override the default output from pydantic by calling `to_dict()` of resolved_transaction_type_details
130
+ if self.resolved_transaction_type_details:
131
+ _dict['resolvedTransactionTypeDetails'] = self.resolved_transaction_type_details.to_dict()
118
132
  # set to None if instrument_identifiers (nullable) is None
119
133
  # and __fields_set__ contains the field
120
134
  if self.instrument_identifiers is None and "instrument_identifiers" in self.__fields_set__:
@@ -160,6 +174,11 @@ class Transaction(BaseModel):
160
174
  if self.transaction_group_id is None and "transaction_group_id" in self.__fields_set__:
161
175
  _dict['transactionGroupId'] = None
162
176
 
177
+ # set to None if strategy_tag (nullable) is None
178
+ # and __fields_set__ contains the field
179
+ if self.strategy_tag is None and "strategy_tag" in self.__fields_set__:
180
+ _dict['strategyTag'] = None
181
+
163
182
  return _dict
164
183
 
165
184
  @classmethod
@@ -199,6 +218,8 @@ class Transaction(BaseModel):
199
218
  "order_id": ResourceId.from_dict(obj.get("orderId")) if obj.get("orderId") is not None else None,
200
219
  "allocation_id": ResourceId.from_dict(obj.get("allocationId")) if obj.get("allocationId") is not None else None,
201
220
  "custodian_account": CustodianAccount.from_dict(obj.get("custodianAccount")) if obj.get("custodianAccount") is not None else None,
202
- "transaction_group_id": obj.get("transactionGroupId")
221
+ "transaction_group_id": obj.get("transactionGroupId"),
222
+ "strategy_tag": [Strategy.from_dict(_item) for _item in obj.get("strategyTag")] if obj.get("strategyTag") is not None else None,
223
+ "resolved_transaction_type_details": TransactionTypeDetails.from_dict(obj.get("resolvedTransactionTypeDetails")) if obj.get("resolvedTransactionTypeDetails") is not None else None
203
224
  })
204
225
  return _obj
@@ -49,7 +49,7 @@ class TransactionRequest(BaseModel):
49
49
  allocation_id: Optional[ResourceId] = Field(None, alias="allocationId")
50
50
  custodian_account_id: Optional[ResourceId] = Field(None, alias="custodianAccountId")
51
51
  transaction_group_id: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="transactionGroupId", description="The identifier for grouping economic events across multiple transactions")
52
- strategy_tag: Optional[conlist(Strategy)] = Field(None, alias="strategyTag", description="A Json representing the allocation of units accross multiple sub-holding keys")
52
+ strategy_tag: Optional[conlist(Strategy)] = Field(None, alias="strategyTag", description="A list of strategies representing the allocation of units across multiple sub-holding keys")
53
53
  __properties = ["transactionId", "type", "instrumentIdentifiers", "transactionDate", "settlementDate", "units", "transactionPrice", "totalConsideration", "exchangeRate", "transactionCurrency", "properties", "counterpartyId", "source", "otcConfirmation", "orderId", "allocationId", "custodianAccountId", "transactionGroupId", "strategyTag"]
54
54
 
55
55
  class Config:
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr
23
+
24
+ class TransactionTypeDetails(BaseModel):
25
+ """
26
+ TransactionTypeDetails
27
+ """
28
+ scope: Optional[StrictStr] = Field(None, description="The scope in which the TransactionType was resolved. If the portfolio has a TransactionTypeScope, this will have been used. Otherwise the default scope will have been used.")
29
+ source: Optional[StrictStr] = Field(None, description="The source in which the TransactionType was resolved.")
30
+ type: Optional[StrictStr] = Field(None, description="The resolved TransactionType. More information on TransactionType resolution can be found at https://support.lusid.com/docs/how-does-lusid-resolve-transactions-to-transaction-types")
31
+ __properties = ["scope", "source", "type"]
32
+
33
+ class Config:
34
+ """Pydantic configuration"""
35
+ allow_population_by_field_name = True
36
+ validate_assignment = True
37
+
38
+ def to_str(self) -> str:
39
+ """Returns the string representation of the model using alias"""
40
+ return pprint.pformat(self.dict(by_alias=True))
41
+
42
+ def to_json(self) -> str:
43
+ """Returns the JSON representation of the model using alias"""
44
+ return json.dumps(self.to_dict())
45
+
46
+ @classmethod
47
+ def from_json(cls, json_str: str) -> TransactionTypeDetails:
48
+ """Create an instance of TransactionTypeDetails from a JSON string"""
49
+ return cls.from_dict(json.loads(json_str))
50
+
51
+ def to_dict(self):
52
+ """Returns the dictionary representation of the model using alias"""
53
+ _dict = self.dict(by_alias=True,
54
+ exclude={
55
+ },
56
+ exclude_none=True)
57
+ # set to None if scope (nullable) is None
58
+ # and __fields_set__ contains the field
59
+ if self.scope is None and "scope" in self.__fields_set__:
60
+ _dict['scope'] = None
61
+
62
+ # set to None if source (nullable) is None
63
+ # and __fields_set__ contains the field
64
+ if self.source is None and "source" in self.__fields_set__:
65
+ _dict['source'] = None
66
+
67
+ # set to None if type (nullable) is None
68
+ # and __fields_set__ contains the field
69
+ if self.type is None and "type" in self.__fields_set__:
70
+ _dict['type'] = None
71
+
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> TransactionTypeDetails:
76
+ """Create an instance of TransactionTypeDetails from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return TransactionTypeDetails.parse_obj(obj)
82
+
83
+ _obj = TransactionTypeDetails.parse_obj({
84
+ "scope": obj.get("scope"),
85
+ "source": obj.get("source"),
86
+ "type": obj.get("type")
87
+ })
88
+ return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.571
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)
@@ -1635,6 +1636,7 @@ Class | Method | HTTP request | Description
1635
1636
  - [TransactionType](docs/TransactionType.md)
1636
1637
  - [TransactionTypeAlias](docs/TransactionTypeAlias.md)
1637
1638
  - [TransactionTypeCalculation](docs/TransactionTypeCalculation.md)
1639
+ - [TransactionTypeDetails](docs/TransactionTypeDetails.md)
1638
1640
  - [TransactionTypeMovement](docs/TransactionTypeMovement.md)
1639
1641
  - [TransactionTypePropertyMapping](docs/TransactionTypePropertyMapping.md)
1640
1642
  - [TransactionTypeRequest](docs/TransactionTypeRequest.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=8ygon1YnAaEg8-1lZQ9Kw2m-ydURNqgR-0BSUhuK1pY,128173
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=uQfpVoQDan7N9oMEAop8BIVNNZdfdLQBM963Fk01B2A,17972
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=13vESVXa-spgKv7bkBEZkI5iHNwsz9ZW7Hn9txX8O_E,121320
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=YrUygIdtiNQAMyek-TtBhOmKj2KJ3BiAd4HYztYQr9o,2534
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
@@ -120,7 +120,7 @@ lusid/models/address_key_option_definition.py,sha256=T2Zj9-KQJhDubLPIIK2pnaM5UDZ
120
120
  lusid/models/adjust_holding.py,sha256=K0FDmwFy3NTJ8HicVCJGA1Mqrbri77d1IGA_hk0ejLY,4387
121
121
  lusid/models/adjust_holding_for_date_request.py,sha256=AXXiwgzNLTbOnieETMglVFHzBKYvIcsT9NK5PpIVdfI,5986
122
122
  lusid/models/adjust_holding_request.py,sha256=_dhEk23kdt2PtaepgoxuBNAB7wyrcJxHzaLhy-lVQQQ,5697
123
- lusid/models/aggregate_spec.py,sha256=8J5m3E2q2VYvmDRe93Y82ppx8ptXyIBPRFK1_Vmz8sg,3334
123
+ lusid/models/aggregate_spec.py,sha256=jevCtRTdbi_pydAt_Dc33oRysTgksAJ3Fn8Sk5m9xtE,3374
124
124
  lusid/models/aggregated_return.py,sha256=idRVdbx--3wj4dfECDZREH_xCNXW8IBoFg_HvrJy9ac,5953
125
125
  lusid/models/aggregated_returns_dispersion_request.py,sha256=7xKtIUa_P-jS3oOpbbgwXL0gzHK0pErqtBzxyTjnqW0,5496
126
126
  lusid/models/aggregated_returns_request.py,sha256=URBqwgZK3tkyqOe5Qo-2VP7xwSupy64b0kIeXNaN0Hk,7601
@@ -128,7 +128,7 @@ lusid/models/aggregated_returns_response.py,sha256=E-0Y3t7Jud_j_S0X0w2tU6ET7ozUC
128
128
  lusid/models/aggregated_transactions_request.py,sha256=PlWTr52XndGTErcD4FfM-Ouu-o3mFvk7jXQz805reLo,5341
129
129
  lusid/models/aggregation_context.py,sha256=IdA9lRVE26VSSQC0qw6Klakz2sS1tQqghyBUq9cunzk,2583
130
130
  lusid/models/aggregation_measure_failure_detail.py,sha256=CM6vzqNogMIVltcphUTx_-rG-I3OlC702SI0ks6G61w,3190
131
- lusid/models/aggregation_op.py,sha256=kwN8kAYhRpFAbSZo3sHrKZm4_abRfsxDKs5CrZboIPU,1062
131
+ lusid/models/aggregation_op.py,sha256=F2n9Nqc-qwyf5W7Fg58FIHf2JJmGuAIfpYsEL2BxqgU,1092
132
132
  lusid/models/aggregation_options.py,sha256=rEn-7En3urOehoVMVnMrS9cxN4ZvihTHFT98YjOrjH0,3128
133
133
  lusid/models/aggregation_query.py,sha256=epqhWBB8ksJhUbsjT6PkSY_xRlkX9gHSRcIQaG5PKRY,8326
134
134
  lusid/models/aggregation_type.py,sha256=XjHrk2_0OhQyn5RK2-LUzDIjvT_blRVYdvyFdkyxQuw,892
@@ -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=c9ABdiG9vIP1zTjdNlVQ2q9yzEFtrAZcu86-smRpTRw,8296
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=TtkiD8x7p1ImQUkMJNzJF_7MrrTM0RfDvNS8qu8VccQ,8792
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=7Cx4rwmc_EkIAuF8YODYDBATM17BuCRhL1TeeD2Mgog,9522
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=5eWehDLTur9JlVcGs3faPrAa5l5mjD_RTtooBqUEVeQ,7020
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=EjIeDLMB62rX1GrFzKk8Qrg0lO2GL9ED5y2qolr6iAs,9001
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=JATf9welqDkvI5zRLClmOXjk5XDmt2YTSqPRPE1dmS4,4701
680
+ lusid/models/order_graph_block_order_detail.py,sha256=vkTckebvYHtwKZLdRK34t6ruYJ7v9KAKMQe_Jdd-4-c,6029
680
681
  lusid/models/order_graph_block_order_synopsis.py,sha256=UYhXd7jsqdLKia6UclAKUYcarMQ0z9SSahWcoLu5zfs,3207
681
682
  lusid/models/order_graph_block_placement_detail.py,sha256=gcm_3SH6OhYyLUz6OILwZs6cKzq4JUm0kO8Ya-YV780,2170
682
683
  lusid/models/order_graph_block_placement_synopsis.py,sha256=K2BAK89iTOPXtk9Fj-AJ0KhZduFhw3eOyHDecB3lccg,3243
@@ -1058,11 +1059,11 @@ 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=x3RBIefY7oiI9MfIK3A2okvuAdeVEk025jp6F5gvIr4,7422
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
1065
- lusid/models/transaction.py,sha256=_Ss6xjcpciz4hXfTI1Uf-tqGSOvOLoJBcFEYvQkk20o,12099
1066
+ lusid/models/transaction.py,sha256=ItU_ujzGcj7RR0br8zxrNCMXk2zO5bh5ZcriGoRdhB4,13742
1066
1067
  lusid/models/transaction_configuration_data.py,sha256=BSHXnMn6TWaubn2zTxPvbRUOsRtGYb0N4sDNUcf1SaY,4318
1067
1068
  lusid/models/transaction_configuration_data_request.py,sha256=mypVKRfltmkG5NEUGqDDyBYdIir3S1nkYzGL8BwHWgo,4398
1068
1069
  lusid/models/transaction_configuration_movement_data.py,sha256=ofaJZQOHloSpT4Y09Sgw-JtQq3RWNwkBl-JLMGg_yYo,7418
@@ -1082,7 +1083,7 @@ lusid/models/transaction_query_mode.py,sha256=q3QNcFSP-LwfdQF_yRUOZMd6ElemQm03yO
1082
1083
  lusid/models/transaction_query_parameters.py,sha256=sYKAouptXvwNtAzz2SdOi7F-9M5q2xOwqT1kjz8vSNE,3365
1083
1084
  lusid/models/transaction_reconciliation_request.py,sha256=pys1JU22geF_MiZwGBlzhiXQ_daHZ0Cffpce8Wvq7ec,4294
1084
1085
  lusid/models/transaction_reconciliation_request_v2.py,sha256=YjOKUfgsoXVlXLbAP2qDc8wsRV-Te-sxtsvKGJe1cjg,5946
1085
- lusid/models/transaction_request.py,sha256=DzbZiQbPT8k40M8Ey1CEqXWMNUIo21mBmKXNVwHsIlc,10834
1086
+ lusid/models/transaction_request.py,sha256=W0qAUjOVWrS7fVK2qP4VtETic5AAGmM1DPXu-6Rcfl8,10847
1086
1087
  lusid/models/transaction_roles.py,sha256=1r-BzcchffLl6p4lSUhRAUmsVdrl7Bvce2cCiwxJanE,839
1087
1088
  lusid/models/transaction_set_configuration_data.py,sha256=CmMrtyOxpcJd5LXW2egsTf4yPCkoJ7yGUA-WFL07zI4,4411
1088
1089
  lusid/models/transaction_set_configuration_data_request.py,sha256=YWx3s0gvxI-6Zh9HmrbcUw9SO2t7OoEq5rXYJyNOFYU,3947
@@ -1093,6 +1094,7 @@ lusid/models/transaction_template_specification.py,sha256=dggD7J8ZSUTznJddC_Sn65
1093
1094
  lusid/models/transaction_type.py,sha256=zcWUQPVY5JKEOzNWQls7TjTiKOB7QVY8iFh1zgJXYUc,5765
1094
1095
  lusid/models/transaction_type_alias.py,sha256=xL9k8kjgAcEPe5sfK8asHscvz7gLcAa6pC_eGgVvXlY,3532
1095
1096
  lusid/models/transaction_type_calculation.py,sha256=Re4rt0IuLxo1hgjDz-VyIgQhVat6w7Fh-DwUF19nYYs,2846
1097
+ lusid/models/transaction_type_details.py,sha256=GC-lanMnyYR_hKlUvU4yU0-exqE6CdMw1081wPUmIj0,3131
1096
1098
  lusid/models/transaction_type_movement.py,sha256=eG4MQrMi0P_ihxOcfsqPAnkYuOmwbho9xQDoAJWH2ro,8695
1097
1099
  lusid/models/transaction_type_property_mapping.py,sha256=2fmP3IJH-44GXE5-jt4Fd55xQscWTrEa76yjQJIUs_4,3249
1098
1100
  lusid/models/transaction_type_request.py,sha256=tuoF4_cUe0KLjF4FN_un_wGtraNfJAXoNrfudvA0zIc,5121
@@ -1226,6 +1228,6 @@ lusid/models/workspace_update_request.py,sha256=uUXEpX-dJ5UiL9w1wMxIFeovSBiTJ-vi
1226
1228
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1227
1229
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1228
1230
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1229
- lusid_sdk-2.1.571.dist-info/METADATA,sha256=QxEcNWaNVlTNOyEEuDfOB2c7biJKdOTl8rHgWfSary0,209088
1230
- lusid_sdk-2.1.571.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1231
- lusid_sdk-2.1.571.dist-info/RECORD,,
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,,