lusid-sdk 2.1.565__py3-none-any.whl → 2.1.580__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
@@ -423,6 +423,7 @@ from lusid.models.exercise_event import ExerciseEvent
423
423
  from lusid.models.exotic_instrument import ExoticInstrument
424
424
  from lusid.models.expanded_group import ExpandedGroup
425
425
  from lusid.models.expiry_event import ExpiryEvent
426
+ from lusid.models.external_fee_component_filter import ExternalFeeComponentFilter
426
427
  from lusid.models.fee import Fee
427
428
  from lusid.models.fee_accrual import FeeAccrual
428
429
  from lusid.models.fee_properties import FeeProperties
@@ -1046,6 +1047,7 @@ from lusid.models.staging_rule_set import StagingRuleSet
1046
1047
  from lusid.models.step_schedule import StepSchedule
1047
1048
  from lusid.models.stock_dividend_event import StockDividendEvent
1048
1049
  from lusid.models.stock_split_event import StockSplitEvent
1050
+ from lusid.models.strategy import Strategy
1049
1051
  from lusid.models.stream import Stream
1050
1052
  from lusid.models.string_comparison_type import StringComparisonType
1051
1053
  from lusid.models.string_compliance_parameter import StringComplianceParameter
@@ -1100,6 +1102,7 @@ from lusid.models.transaction_template_specification import TransactionTemplateS
1100
1102
  from lusid.models.transaction_type import TransactionType
1101
1103
  from lusid.models.transaction_type_alias import TransactionTypeAlias
1102
1104
  from lusid.models.transaction_type_calculation import TransactionTypeCalculation
1105
+ from lusid.models.transaction_type_details import TransactionTypeDetails
1103
1106
  from lusid.models.transaction_type_movement import TransactionTypeMovement
1104
1107
  from lusid.models.transaction_type_property_mapping import TransactionTypePropertyMapping
1105
1108
  from lusid.models.transaction_type_request import TransactionTypeRequest
@@ -1642,6 +1645,7 @@ __all__ = [
1642
1645
  "ExoticInstrument",
1643
1646
  "ExpandedGroup",
1644
1647
  "ExpiryEvent",
1648
+ "ExternalFeeComponentFilter",
1645
1649
  "Fee",
1646
1650
  "FeeAccrual",
1647
1651
  "FeeProperties",
@@ -2265,6 +2269,7 @@ __all__ = [
2265
2269
  "StepSchedule",
2266
2270
  "StockDividendEvent",
2267
2271
  "StockSplitEvent",
2272
+ "Strategy",
2268
2273
  "Stream",
2269
2274
  "StringComparisonType",
2270
2275
  "StringComplianceParameter",
@@ -2319,6 +2324,7 @@ __all__ = [
2319
2324
  "TransactionType",
2320
2325
  "TransactionTypeAlias",
2321
2326
  "TransactionTypeCalculation",
2327
+ "TransactionTypeDetails",
2322
2328
  "TransactionTypeMovement",
2323
2329
  "TransactionTypePropertyMapping",
2324
2330
  "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.6996\n"\
448
+ "Version of the API: 0.11.7042\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
@@ -342,6 +342,7 @@ from lusid.models.exercise_event import ExerciseEvent
342
342
  from lusid.models.exotic_instrument import ExoticInstrument
343
343
  from lusid.models.expanded_group import ExpandedGroup
344
344
  from lusid.models.expiry_event import ExpiryEvent
345
+ from lusid.models.external_fee_component_filter import ExternalFeeComponentFilter
345
346
  from lusid.models.fee import Fee
346
347
  from lusid.models.fee_accrual import FeeAccrual
347
348
  from lusid.models.fee_properties import FeeProperties
@@ -965,6 +966,7 @@ from lusid.models.staging_rule_set import StagingRuleSet
965
966
  from lusid.models.step_schedule import StepSchedule
966
967
  from lusid.models.stock_dividend_event import StockDividendEvent
967
968
  from lusid.models.stock_split_event import StockSplitEvent
969
+ from lusid.models.strategy import Strategy
968
970
  from lusid.models.stream import Stream
969
971
  from lusid.models.string_comparison_type import StringComparisonType
970
972
  from lusid.models.string_compliance_parameter import StringComplianceParameter
@@ -1019,6 +1021,7 @@ from lusid.models.transaction_template_specification import TransactionTemplateS
1019
1021
  from lusid.models.transaction_type import TransactionType
1020
1022
  from lusid.models.transaction_type_alias import TransactionTypeAlias
1021
1023
  from lusid.models.transaction_type_calculation import TransactionTypeCalculation
1024
+ from lusid.models.transaction_type_details import TransactionTypeDetails
1022
1025
  from lusid.models.transaction_type_movement import TransactionTypeMovement
1023
1026
  from lusid.models.transaction_type_property_mapping import TransactionTypePropertyMapping
1024
1027
  from lusid.models.transaction_type_request import TransactionTypeRequest
@@ -1481,6 +1484,7 @@ __all__ = [
1481
1484
  "ExoticInstrument",
1482
1485
  "ExpandedGroup",
1483
1486
  "ExpiryEvent",
1487
+ "ExternalFeeComponentFilter",
1484
1488
  "Fee",
1485
1489
  "FeeAccrual",
1486
1490
  "FeeProperties",
@@ -2104,6 +2108,7 @@ __all__ = [
2104
2108
  "StepSchedule",
2105
2109
  "StockDividendEvent",
2106
2110
  "StockSplitEvent",
2111
+ "Strategy",
2107
2112
  "Stream",
2108
2113
  "StringComparisonType",
2109
2114
  "StringComplianceParameter",
@@ -2158,6 +2163,7 @@ __all__ = [
2158
2163
  "TransactionType",
2159
2164
  "TransactionTypeAlias",
2160
2165
  "TransactionTypeCalculation",
2166
+ "TransactionTypeDetails",
2161
2167
  "TransactionTypeMovement",
2162
2168
  "TransactionTypePropertyMapping",
2163
2169
  "TransactionTypeRequest",
@@ -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'
@@ -18,15 +18,15 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
 
21
- from typing import Any, Dict
22
- from pydantic.v1 import BaseModel, Field, constr
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr, constr
23
23
 
24
24
  class ComparisonAttributeValuePair(BaseModel):
25
25
  """
26
26
  ComparisonAttributeValuePair
27
27
  """
28
28
  attribute_name: constr(strict=True, min_length=1) = Field(..., alias="attributeName", description="Comparison rule attribute name.")
29
- value: constr(strict=True, min_length=1) = Field(..., description="Computed value for the comparison rule attribute.")
29
+ value: Optional[StrictStr] = Field(None, description="Computed value for the comparison rule attribute.")
30
30
  __properties = ["attributeName", "value"]
31
31
 
32
32
  class Config:
@@ -53,6 +53,11 @@ class ComparisonAttributeValuePair(BaseModel):
53
53
  exclude={
54
54
  },
55
55
  exclude_none=True)
56
+ # set to None if value (nullable) is None
57
+ # and __fields_set__ contains the field
58
+ if self.value is None and "value" in self.__fields_set__:
59
+ _dict['value'] = None
60
+
56
61
  return _dict
57
62
 
58
63
  @classmethod
@@ -0,0 +1,94 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict
22
+ from pydantic.v1 import BaseModel, Field, constr, validator
23
+
24
+ class ExternalFeeComponentFilter(BaseModel):
25
+ """
26
+ ExternalFeeComponentFilter
27
+ """
28
+ filter_id: constr(strict=True, max_length=16384, min_length=1) = Field(..., alias="filterId")
29
+ filter: constr(strict=True, max_length=16384, min_length=1) = Field(...)
30
+ applies_to: constr(strict=True, max_length=16384, min_length=1) = Field(..., alias="appliesTo")
31
+ __properties = ["filterId", "filter", "appliesTo"]
32
+
33
+ @validator('filter_id')
34
+ def filter_id_validate_regular_expression(cls, value):
35
+ """Validates the regular expression"""
36
+ if not re.match(r"^[\s\S]*$", value):
37
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
38
+ return value
39
+
40
+ @validator('filter')
41
+ def filter_validate_regular_expression(cls, value):
42
+ """Validates the regular expression"""
43
+ if not re.match(r"^[\s\S]*$", value):
44
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
45
+ return value
46
+
47
+ @validator('applies_to')
48
+ def applies_to_validate_regular_expression(cls, value):
49
+ """Validates the regular expression"""
50
+ if not re.match(r"^[\s\S]*$", value):
51
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
52
+ return value
53
+
54
+ class Config:
55
+ """Pydantic configuration"""
56
+ allow_population_by_field_name = True
57
+ validate_assignment = True
58
+
59
+ def to_str(self) -> str:
60
+ """Returns the string representation of the model using alias"""
61
+ return pprint.pformat(self.dict(by_alias=True))
62
+
63
+ def to_json(self) -> str:
64
+ """Returns the JSON representation of the model using alias"""
65
+ return json.dumps(self.to_dict())
66
+
67
+ @classmethod
68
+ def from_json(cls, json_str: str) -> ExternalFeeComponentFilter:
69
+ """Create an instance of ExternalFeeComponentFilter from a JSON string"""
70
+ return cls.from_dict(json.loads(json_str))
71
+
72
+ def to_dict(self):
73
+ """Returns the dictionary representation of the model using alias"""
74
+ _dict = self.dict(by_alias=True,
75
+ exclude={
76
+ },
77
+ exclude_none=True)
78
+ return _dict
79
+
80
+ @classmethod
81
+ def from_dict(cls, obj: dict) -> ExternalFeeComponentFilter:
82
+ """Create an instance of ExternalFeeComponentFilter from a dict"""
83
+ if obj is None:
84
+ return None
85
+
86
+ if not isinstance(obj, dict):
87
+ return ExternalFeeComponentFilter.parse_obj(obj)
88
+
89
+ _obj = ExternalFeeComponentFilter.parse_obj({
90
+ "filter_id": obj.get("filterId"),
91
+ "filter": obj.get("filter"),
92
+ "applies_to": obj.get("appliesTo")
93
+ })
94
+ return _obj
@@ -21,6 +21,7 @@ import json
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic.v1 import BaseModel, Field, StrictStr, conlist
23
23
  from lusid.models.component_filter import ComponentFilter
24
+ from lusid.models.external_fee_component_filter import ExternalFeeComponentFilter
24
25
  from lusid.models.link import Link
25
26
  from lusid.models.model_property import ModelProperty
26
27
  from lusid.models.resource_id import ResourceId
@@ -37,10 +38,11 @@ class FundConfiguration(BaseModel):
37
38
  dealing_filters: Optional[conlist(ComponentFilter)] = Field(None, alias="dealingFilters", description="The set of filters used to decide which JE lines are included in the dealing.")
38
39
  pnl_filters: Optional[conlist(ComponentFilter)] = Field(None, alias="pnlFilters", description="The set of filters used to decide which JE lines are included in the PnL.")
39
40
  back_out_filters: Optional[conlist(ComponentFilter)] = Field(None, alias="backOutFilters", description="The set of filters used to decide which JE lines are included in the back outs.")
41
+ external_fee_filters: Optional[conlist(ExternalFeeComponentFilter)] = Field(None, alias="externalFeeFilters", description="The set of filters used to decide which JE lines are used for inputting fees from an external source.")
40
42
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Fund Configuration.")
41
43
  version: Optional[Version] = None
42
44
  links: Optional[conlist(Link)] = None
43
- __properties = ["href", "id", "displayName", "description", "dealingFilters", "pnlFilters", "backOutFilters", "properties", "version", "links"]
45
+ __properties = ["href", "id", "displayName", "description", "dealingFilters", "pnlFilters", "backOutFilters", "externalFeeFilters", "properties", "version", "links"]
44
46
 
45
47
  class Config:
46
48
  """Pydantic configuration"""
@@ -90,6 +92,13 @@ class FundConfiguration(BaseModel):
90
92
  if _item:
91
93
  _items.append(_item.to_dict())
92
94
  _dict['backOutFilters'] = _items
95
+ # override the default output from pydantic by calling `to_dict()` of each item in external_fee_filters (list)
96
+ _items = []
97
+ if self.external_fee_filters:
98
+ for _item in self.external_fee_filters:
99
+ if _item:
100
+ _items.append(_item.to_dict())
101
+ _dict['externalFeeFilters'] = _items
93
102
  # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
94
103
  _field_dict = {}
95
104
  if self.properties:
@@ -137,6 +146,11 @@ class FundConfiguration(BaseModel):
137
146
  if self.back_out_filters is None and "back_out_filters" in self.__fields_set__:
138
147
  _dict['backOutFilters'] = None
139
148
 
149
+ # set to None if external_fee_filters (nullable) is None
150
+ # and __fields_set__ contains the field
151
+ if self.external_fee_filters is None and "external_fee_filters" in self.__fields_set__:
152
+ _dict['externalFeeFilters'] = None
153
+
140
154
  # set to None if properties (nullable) is None
141
155
  # and __fields_set__ contains the field
142
156
  if self.properties is None and "properties" in self.__fields_set__:
@@ -166,6 +180,7 @@ class FundConfiguration(BaseModel):
166
180
  "dealing_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("dealingFilters")] if obj.get("dealingFilters") is not None else None,
167
181
  "pnl_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("pnlFilters")] if obj.get("pnlFilters") is not None else None,
168
182
  "back_out_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("backOutFilters")] if obj.get("backOutFilters") is not None else None,
183
+ "external_fee_filters": [ExternalFeeComponentFilter.from_dict(_item) for _item in obj.get("externalFeeFilters")] if obj.get("externalFeeFilters") is not None else None,
169
184
  "properties": dict(
170
185
  (_k, ModelProperty.from_dict(_v))
171
186
  for _k, _v in obj.get("properties").items()
@@ -21,6 +21,7 @@ import json
21
21
  from typing import Any, Dict, List, Optional
22
22
  from pydantic.v1 import BaseModel, Field, conlist, constr, validator
23
23
  from lusid.models.component_filter import ComponentFilter
24
+ from lusid.models.external_fee_component_filter import ExternalFeeComponentFilter
24
25
  from lusid.models.model_property import ModelProperty
25
26
 
26
27
  class FundConfigurationRequest(BaseModel):
@@ -33,8 +34,9 @@ class FundConfigurationRequest(BaseModel):
33
34
  dealing_filters: conlist(ComponentFilter) = Field(..., alias="dealingFilters", description="The set of filters used to decide which JE lines are included in the dealing.")
34
35
  pnl_filters: conlist(ComponentFilter) = Field(..., alias="pnlFilters", description="The set of filters used to decide which JE lines are included in the PnL.")
35
36
  back_out_filters: conlist(ComponentFilter) = Field(..., alias="backOutFilters", description="The set of filters used to decide which JE lines are included in the back outs.")
37
+ external_fee_filters: Optional[conlist(ExternalFeeComponentFilter)] = Field(None, alias="externalFeeFilters", description="The set of filters used to decide which JE lines are used for inputting fees from an external source.")
36
38
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Fund Configuration.")
37
- __properties = ["code", "displayName", "description", "dealingFilters", "pnlFilters", "backOutFilters", "properties"]
39
+ __properties = ["code", "displayName", "description", "dealingFilters", "pnlFilters", "backOutFilters", "externalFeeFilters", "properties"]
38
40
 
39
41
  @validator('code')
40
42
  def code_validate_regular_expression(cls, value):
@@ -98,6 +100,13 @@ class FundConfigurationRequest(BaseModel):
98
100
  if _item:
99
101
  _items.append(_item.to_dict())
100
102
  _dict['backOutFilters'] = _items
103
+ # override the default output from pydantic by calling `to_dict()` of each item in external_fee_filters (list)
104
+ _items = []
105
+ if self.external_fee_filters:
106
+ for _item in self.external_fee_filters:
107
+ if _item:
108
+ _items.append(_item.to_dict())
109
+ _dict['externalFeeFilters'] = _items
101
110
  # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
102
111
  _field_dict = {}
103
112
  if self.properties:
@@ -115,6 +124,11 @@ class FundConfigurationRequest(BaseModel):
115
124
  if self.description is None and "description" in self.__fields_set__:
116
125
  _dict['description'] = None
117
126
 
127
+ # set to None if external_fee_filters (nullable) is None
128
+ # and __fields_set__ contains the field
129
+ if self.external_fee_filters is None and "external_fee_filters" in self.__fields_set__:
130
+ _dict['externalFeeFilters'] = None
131
+
118
132
  # set to None if properties (nullable) is None
119
133
  # and __fields_set__ contains the field
120
134
  if self.properties is None and "properties" in self.__fields_set__:
@@ -138,6 +152,7 @@ class FundConfigurationRequest(BaseModel):
138
152
  "dealing_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("dealingFilters")] if obj.get("dealingFilters") is not None else None,
139
153
  "pnl_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("pnlFilters")] if obj.get("pnlFilters") is not None else None,
140
154
  "back_out_filters": [ComponentFilter.from_dict(_item) for _item in obj.get("backOutFilters")] if obj.get("backOutFilters") is not None else None,
155
+ "external_fee_filters": [ExternalFeeComponentFilter.from_dict(_item) for _item in obj.get("externalFeeFilters")] if obj.get("externalFeeFilters") is not None else None,
141
156
  "properties": dict(
142
157
  (_k, ModelProperty.from_dict(_v))
143
158
  for _k, _v in obj.get("properties").items()
@@ -29,6 +29,7 @@ class OptionExerciseCashEvent(InstrumentEvent):
29
29
  """
30
30
  cash_flow_per_unit: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="cashFlowPerUnit", description="The cashflow per unit")
31
31
  exercise_date: Optional[datetime] = Field(None, alias="exerciseDate", description="The exercise date of the option.")
32
+ delivery_date: Optional[datetime] = Field(None, alias="deliveryDate", description="The delivery date of the option.")
32
33
  exercise_type: constr(strict=True, min_length=1) = Field(..., alias="exerciseType", description="The optionality type of the underlying option e.g. American, European. Supported string (enumeration) values are: [European, Bermudan, American].")
33
34
  maturity_date: datetime = Field(..., alias="maturityDate", description="The maturity date of the option.")
34
35
  moneyness: Optional[StrictStr] = Field(None, description="The moneyness of the option e.g. InTheMoney, OutOfTheMoney. Supported string (enumeration) values are: [InTheMoney, OutOfTheMoney, AtTheMoney].")
@@ -40,7 +41,7 @@ class OptionExerciseCashEvent(InstrumentEvent):
40
41
  underlying_value_per_unit: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="underlyingValuePerUnit", description="The underlying price times the number of shares to exchange if exercised.")
41
42
  instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent, TermDepositInterestEvent, TermDepositPrincipalEvent")
42
43
  additional_properties: Dict[str, Any] = {}
43
- __properties = ["instrumentEventType", "cashFlowPerUnit", "exerciseDate", "exerciseType", "maturityDate", "moneyness", "optionExerciseElections", "optionType", "startDate", "strikeCurrency", "strikePerUnit", "underlyingValuePerUnit"]
44
+ __properties = ["instrumentEventType", "cashFlowPerUnit", "exerciseDate", "deliveryDate", "exerciseType", "maturityDate", "moneyness", "optionExerciseElections", "optionType", "startDate", "strikeCurrency", "strikePerUnit", "underlyingValuePerUnit"]
44
45
 
45
46
  @validator('instrument_event_type')
46
47
  def instrument_event_type_validate_enum(cls, value):
@@ -96,6 +97,11 @@ class OptionExerciseCashEvent(InstrumentEvent):
96
97
  if self.exercise_date is None and "exercise_date" in self.__fields_set__:
97
98
  _dict['exerciseDate'] = None
98
99
 
100
+ # set to None if delivery_date (nullable) is None
101
+ # and __fields_set__ contains the field
102
+ if self.delivery_date is None and "delivery_date" in self.__fields_set__:
103
+ _dict['deliveryDate'] = None
104
+
99
105
  # set to None if moneyness (nullable) is None
100
106
  # and __fields_set__ contains the field
101
107
  if self.moneyness is None and "moneyness" in self.__fields_set__:
@@ -126,6 +132,7 @@ class OptionExerciseCashEvent(InstrumentEvent):
126
132
  "instrument_event_type": obj.get("instrumentEventType"),
127
133
  "cash_flow_per_unit": obj.get("cashFlowPerUnit"),
128
134
  "exercise_date": obj.get("exerciseDate"),
135
+ "delivery_date": obj.get("deliveryDate"),
129
136
  "exercise_type": obj.get("exerciseType"),
130
137
  "maturity_date": obj.get("maturityDate"),
131
138
  "moneyness": obj.get("moneyness"),
@@ -30,6 +30,7 @@ class OptionExercisePhysicalEvent(InstrumentEvent):
30
30
  Event for physical option exercises. # noqa: E501
31
31
  """
32
32
  exercise_date: Optional[datetime] = Field(None, alias="exerciseDate", description="The exercise date of the option.")
33
+ delivery_date: Optional[datetime] = Field(None, alias="deliveryDate", description="The delivery date of the option.")
33
34
  exercise_type: constr(strict=True, min_length=1) = Field(..., alias="exerciseType", description="The optionality type of the underlying option e.g. American, European. Supported string (enumeration) values are: [European, Bermudan, American].")
34
35
  maturity_date: datetime = Field(..., alias="maturityDate", description="The maturity date of the option.")
35
36
  moneyness: Optional[StrictStr] = Field(None, description="The moneyness of the option e.g. InTheMoney, OutOfTheMoney. Supported string (enumeration) values are: [InTheMoney, OutOfTheMoney, AtTheMoney].")
@@ -43,7 +44,7 @@ class OptionExercisePhysicalEvent(InstrumentEvent):
43
44
  units_ratio: UnitsRatio = Field(..., alias="unitsRatio")
44
45
  instrument_event_type: StrictStr = Field(..., alias="instrumentEventType", description="The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent, BondCouponEvent, DividendReinvestmentEvent, AccumulationEvent, BondPrincipalEvent, DividendOptionEvent, MaturityEvent, FxForwardSettlementEvent, ExpiryEvent, ScripDividendEvent, StockDividendEvent, ReverseStockSplitEvent, CapitalDistributionEvent, SpinOffEvent, MergerEvent, FutureExpiryEvent, SwapCashFlowEvent, SwapPrincipalEvent, CreditPremiumCashFlowEvent, CdsCreditEvent, CdxCreditEvent, MbsCouponEvent, MbsPrincipalEvent, BonusIssueEvent, MbsPrincipalWriteOffEvent, MbsInterestDeferralEvent, MbsInterestShortfallEvent, TenderEvent, CallOnIntermediateSecuritiesEvent, IntermediateSecuritiesDistributionEvent, OptionExercisePhysicalEvent, OptionExerciseCashEvent, ProtectionPayoutCashFlowEvent, TermDepositInterestEvent, TermDepositPrincipalEvent")
45
46
  additional_properties: Dict[str, Any] = {}
46
- __properties = ["instrumentEventType", "exerciseDate", "exerciseType", "maturityDate", "moneyness", "newInstrument", "optionExerciseElections", "optionType", "startDate", "strikeCurrency", "strikePerUnit", "underlyingValuePerUnit", "unitsRatio"]
47
+ __properties = ["instrumentEventType", "exerciseDate", "deliveryDate", "exerciseType", "maturityDate", "moneyness", "newInstrument", "optionExerciseElections", "optionType", "startDate", "strikeCurrency", "strikePerUnit", "underlyingValuePerUnit", "unitsRatio"]
47
48
 
48
49
  @validator('instrument_event_type')
49
50
  def instrument_event_type_validate_enum(cls, value):
@@ -100,6 +101,11 @@ class OptionExercisePhysicalEvent(InstrumentEvent):
100
101
  if self.exercise_date is None and "exercise_date" in self.__fields_set__:
101
102
  _dict['exerciseDate'] = None
102
103
 
104
+ # set to None if delivery_date (nullable) is None
105
+ # and __fields_set__ contains the field
106
+ if self.delivery_date is None and "delivery_date" in self.__fields_set__:
107
+ _dict['deliveryDate'] = None
108
+
103
109
  # set to None if moneyness (nullable) is None
104
110
  # and __fields_set__ contains the field
105
111
  if self.moneyness is None and "moneyness" in self.__fields_set__:
@@ -129,6 +135,7 @@ class OptionExercisePhysicalEvent(InstrumentEvent):
129
135
  _obj = OptionExercisePhysicalEvent.parse_obj({
130
136
  "instrument_event_type": obj.get("instrumentEventType"),
131
137
  "exercise_date": obj.get("exerciseDate"),
138
+ "delivery_date": obj.get("deliveryDate"),
132
139
  "exercise_type": obj.get("exerciseType"),
133
140
  "maturity_date": obj.get("maturityDate"),
134
141
  "moneyness": obj.get("moneyness"),
@@ -0,0 +1,81 @@
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, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, conlist, constr
23
+ from lusid.models.perpetual_property import PerpetualProperty
24
+
25
+ class Strategy(BaseModel):
26
+ """
27
+ Strategy
28
+ """
29
+ keys: conlist(PerpetualProperty, min_items=1) = Field(...)
30
+ value_type: constr(strict=True, min_length=1) = Field(..., alias="valueType")
31
+ value: Union[StrictFloat, StrictInt] = Field(...)
32
+ __properties = ["keys", "valueType", "value"]
33
+
34
+ class Config:
35
+ """Pydantic configuration"""
36
+ allow_population_by_field_name = True
37
+ validate_assignment = True
38
+
39
+ def to_str(self) -> str:
40
+ """Returns the string representation of the model using alias"""
41
+ return pprint.pformat(self.dict(by_alias=True))
42
+
43
+ def to_json(self) -> str:
44
+ """Returns the JSON representation of the model using alias"""
45
+ return json.dumps(self.to_dict())
46
+
47
+ @classmethod
48
+ def from_json(cls, json_str: str) -> Strategy:
49
+ """Create an instance of Strategy from a JSON string"""
50
+ return cls.from_dict(json.loads(json_str))
51
+
52
+ def to_dict(self):
53
+ """Returns the dictionary representation of the model using alias"""
54
+ _dict = self.dict(by_alias=True,
55
+ exclude={
56
+ },
57
+ exclude_none=True)
58
+ # override the default output from pydantic by calling `to_dict()` of each item in keys (list)
59
+ _items = []
60
+ if self.keys:
61
+ for _item in self.keys:
62
+ if _item:
63
+ _items.append(_item.to_dict())
64
+ _dict['keys'] = _items
65
+ return _dict
66
+
67
+ @classmethod
68
+ def from_dict(cls, obj: dict) -> Strategy:
69
+ """Create an instance of Strategy from a dict"""
70
+ if obj is None:
71
+ return None
72
+
73
+ if not isinstance(obj, dict):
74
+ return Strategy.parse_obj(obj)
75
+
76
+ _obj = Strategy.parse_obj({
77
+ "keys": [PerpetualProperty.from_dict(_item) for _item in obj.get("keys")] if obj.get("keys") is not None else None,
78
+ "value_type": obj.get("valueType"),
79
+ "value": obj.get("value")
80
+ })
81
+ return _obj
@@ -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
@@ -18,12 +18,13 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
 
21
- from typing import Any, Dict, Optional, Union
22
- from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, constr
21
+ from typing import Any, Dict, List, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr
23
23
  from lusid.models.currency_and_amount import CurrencyAndAmount
24
24
  from lusid.models.otc_confirmation import OtcConfirmation
25
25
  from lusid.models.perpetual_property import PerpetualProperty
26
26
  from lusid.models.resource_id import ResourceId
27
+ from lusid.models.strategy import Strategy
27
28
  from lusid.models.transaction_price import TransactionPrice
28
29
 
29
30
  class TransactionRequest(BaseModel):
@@ -48,7 +49,8 @@ class TransactionRequest(BaseModel):
48
49
  allocation_id: Optional[ResourceId] = Field(None, alias="allocationId")
49
50
  custodian_account_id: Optional[ResourceId] = Field(None, alias="custodianAccountId")
50
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")
51
- __properties = ["transactionId", "type", "instrumentIdentifiers", "transactionDate", "settlementDate", "units", "transactionPrice", "totalConsideration", "exchangeRate", "transactionCurrency", "properties", "counterpartyId", "source", "otcConfirmation", "orderId", "allocationId", "custodianAccountId", "transactionGroupId"]
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
+ __properties = ["transactionId", "type", "instrumentIdentifiers", "transactionDate", "settlementDate", "units", "transactionPrice", "totalConsideration", "exchangeRate", "transactionCurrency", "properties", "counterpartyId", "source", "otcConfirmation", "orderId", "allocationId", "custodianAccountId", "transactionGroupId", "strategyTag"]
52
54
 
53
55
  class Config:
54
56
  """Pydantic configuration"""
@@ -99,6 +101,13 @@ class TransactionRequest(BaseModel):
99
101
  # override the default output from pydantic by calling `to_dict()` of custodian_account_id
100
102
  if self.custodian_account_id:
101
103
  _dict['custodianAccountId'] = self.custodian_account_id.to_dict()
104
+ # override the default output from pydantic by calling `to_dict()` of each item in strategy_tag (list)
105
+ _items = []
106
+ if self.strategy_tag:
107
+ for _item in self.strategy_tag:
108
+ if _item:
109
+ _items.append(_item.to_dict())
110
+ _dict['strategyTag'] = _items
102
111
  # set to None if exchange_rate (nullable) is None
103
112
  # and __fields_set__ contains the field
104
113
  if self.exchange_rate is None and "exchange_rate" in self.__fields_set__:
@@ -129,6 +138,11 @@ class TransactionRequest(BaseModel):
129
138
  if self.transaction_group_id is None and "transaction_group_id" in self.__fields_set__:
130
139
  _dict['transactionGroupId'] = None
131
140
 
141
+ # set to None if strategy_tag (nullable) is None
142
+ # and __fields_set__ contains the field
143
+ if self.strategy_tag is None and "strategy_tag" in self.__fields_set__:
144
+ _dict['strategyTag'] = None
145
+
132
146
  return _dict
133
147
 
134
148
  @classmethod
@@ -163,6 +177,7 @@ class TransactionRequest(BaseModel):
163
177
  "order_id": ResourceId.from_dict(obj.get("orderId")) if obj.get("orderId") is not None else None,
164
178
  "allocation_id": ResourceId.from_dict(obj.get("allocationId")) if obj.get("allocationId") is not None else None,
165
179
  "custodian_account_id": ResourceId.from_dict(obj.get("custodianAccountId")) if obj.get("custodianAccountId") is not None else None,
166
- "transaction_group_id": obj.get("transactionGroupId")
180
+ "transaction_group_id": obj.get("transactionGroupId"),
181
+ "strategy_tag": [Strategy.from_dict(_item) for _item in obj.get("strategyTag")] if obj.get("strategyTag") is not None else None
167
182
  })
168
183
  return _obj
@@ -0,0 +1,88 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr
23
+
24
+ class 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.565
3
+ Version: 2.1.580
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -956,6 +956,7 @@ Class | Method | HTTP request | Description
956
956
  - [ExoticInstrument](docs/ExoticInstrument.md)
957
957
  - [ExpandedGroup](docs/ExpandedGroup.md)
958
958
  - [ExpiryEvent](docs/ExpiryEvent.md)
959
+ - [ExternalFeeComponentFilter](docs/ExternalFeeComponentFilter.md)
959
960
  - [Fee](docs/Fee.md)
960
961
  - [FeeAccrual](docs/FeeAccrual.md)
961
962
  - [FeeProperties](docs/FeeProperties.md)
@@ -1579,6 +1580,7 @@ Class | Method | HTTP request | Description
1579
1580
  - [StepSchedule](docs/StepSchedule.md)
1580
1581
  - [StockDividendEvent](docs/StockDividendEvent.md)
1581
1582
  - [StockSplitEvent](docs/StockSplitEvent.md)
1583
+ - [Strategy](docs/Strategy.md)
1582
1584
  - [Stream](docs/Stream.md)
1583
1585
  - [StringComparisonType](docs/StringComparisonType.md)
1584
1586
  - [StringComplianceParameter](docs/StringComplianceParameter.md)
@@ -1633,6 +1635,7 @@ Class | Method | HTTP request | Description
1633
1635
  - [TransactionType](docs/TransactionType.md)
1634
1636
  - [TransactionTypeAlias](docs/TransactionTypeAlias.md)
1635
1637
  - [TransactionTypeCalculation](docs/TransactionTypeCalculation.md)
1638
+ - [TransactionTypeDetails](docs/TransactionTypeDetails.md)
1636
1639
  - [TransactionTypeMovement](docs/TransactionTypeMovement.md)
1637
1640
  - [TransactionTypePropertyMapping](docs/TransactionTypePropertyMapping.md)
1638
1641
  - [TransactionTypeRequest](docs/TransactionTypeRequest.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=RIhOPtL52VtGmkzRZIWKpMn5VEkvqz2kQVofl2V95Eg,127998
1
+ lusid/__init__.py,sha256=JE2nxkgI5nZZNRt1wdc9VwV5ZY0yYfaIUBc64wGPrjU,128276
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=oF7bWMes7g7AZkS1yGYcuI-L-8_tA82WmaliFVmsBUk,17972
73
+ lusid/configuration.py,sha256=WG3lT-ppYt4GKDVq8OnX3uVDxs5jCk7Xe_gVo_pU1TE,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=liI_KFxHI9BgnlJOHA_bhPNyvl4MG7-iSPjwGhV1RIk,121145
88
+ lusid/models/__init__.py,sha256=DLRBrdWMt_4Kz83YFo_BM6FVwz82wuEccGyTkmdFzoA,121423
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
@@ -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
@@ -234,7 +234,7 @@ lusid/models/cleardown_module_rules_updated_response.py,sha256=gVxjkztmGxvnHaGMQ
234
234
  lusid/models/client.py,sha256=C-cuudkA8GKpa3GKnbetJFu8kE5E88Ap1h_72UHqKVA,1980
235
235
  lusid/models/close_event.py,sha256=roAW8-T8hMu71QCDCLrCGgg3rn9AkSJdFWSMZQ7n24s,6483
236
236
  lusid/models/close_period_diary_entry_request.py,sha256=sD2X7MALlyW6tCr7Y2voUINkNVqF6YpcYdkMsQubaa0,6490
237
- lusid/models/comparison_attribute_value_pair.py,sha256=jnEdtUm45pyetOejxEb3VMEOKH-pSNKZx1Lps_6xNrQ,2218
237
+ lusid/models/comparison_attribute_value_pair.py,sha256=4AYi8WddelHw2hQw-O8z6snCKZBBFxA946o0MZjE-mc,2425
238
238
  lusid/models/complete_portfolio.py,sha256=_y1LTAZ7pErx7ioQu20WLK_l3sy55JRoJo8c4yZb3jE,7827
239
239
  lusid/models/complete_relation.py,sha256=T1Wd-knJ0m60ZV82FRinBboqaj0XioTUirK43ozT1q4,3908
240
240
  lusid/models/complete_relationship.py,sha256=oO5LLSMYB6IXIsWZVoooboC0TEo3aaox6zLFdnn1wLk,5168
@@ -414,6 +414,7 @@ lusid/models/exercise_event.py,sha256=Oq9OUIRdPpzaHeORRXzlqQxEnzOQe2SS3fx7Fh8SH_
414
414
  lusid/models/exotic_instrument.py,sha256=TSm124GJMpAHSfxhNyLDOwWgTZKqNqW21mwcs4nfFKA,5886
415
415
  lusid/models/expanded_group.py,sha256=e1fIiusdlI_VtjJlF4g5O_yg6A_5VDOg2LaW94CUyJU,5931
416
416
  lusid/models/expiry_event.py,sha256=pnBngOXyKP0OAPxe40_b53eZWzReDGh1wKwLi1lOvMg,6197
417
+ lusid/models/external_fee_component_filter.py,sha256=MYonxkbn322SfeeMvNUZ4VvjZlqw24SuBPECUkw-1wk,3125
417
418
  lusid/models/fee.py,sha256=QhQeSjYw4h7mpQ4d4bGSnu2WU_A1J8pMJwi8j8fm210,11945
418
419
  lusid/models/fee_accrual.py,sha256=4u5DYJpuu0mwhpXafCRA1mHCdDhNMjwpuTMllxUiqkI,4319
419
420
  lusid/models/fee_properties.py,sha256=Q92whmRw6aIwyxsgLVF9vntTY5WLwtrDdJMw9sSNoEQ,4232
@@ -443,9 +444,9 @@ lusid/models/forward_rate_agreement.py,sha256=y6AWOQLqEP88OkiRkYFM7_pw-GokH69602
443
444
  lusid/models/from_recipe.py,sha256=paSou6poZf5CHkswKhZXc8jXmVcxj7s7kJXRw4ucbfQ,2261
444
445
  lusid/models/fund.py,sha256=4FENDtVBRDI59lTQ_LdffuIYIPGj7C-LUkL0Wtzn0cc,8958
445
446
  lusid/models/fund_amount.py,sha256=qaAEXheAqYVXXcdxSKsNuzY9FY0lG-AjNUrAS_15i3w,1900
446
- lusid/models/fund_configuration.py,sha256=v_ySM4ssehaZ4gYlhV5x9anPrboiglxfTyCDeU2HqGw,8208
447
+ lusid/models/fund_configuration.py,sha256=23ojBK8bYghK_nPbvurQ7gH91Wlkj5Rh_2qbI_kkI00,9336
447
448
  lusid/models/fund_configuration_properties.py,sha256=hqKaBSMkSYC5UcWxkgDos41GYnm__6-Q23Z6SDsBgM4,4373
448
- lusid/models/fund_configuration_request.py,sha256=8WTwkz9VKkY77QW1aib7EjhfYYjPiNQ0z3SxD4IHkTc,6544
449
+ lusid/models/fund_configuration_request.py,sha256=joOd-krDftkkQUk7hjS8vAOFXnHL9yySQgYEBdEVr_k,7672
449
450
  lusid/models/fund_details.py,sha256=5VcFaIfA7FyX0tB9kOkDKYiHxR-ms6CPTn_T2SotxkI,2176
450
451
  lusid/models/fund_id_list.py,sha256=B0Zsyn-q7SFuhXtrug0Z4nBmAIM1jo88V3fYVcwIOhE,3706
451
452
  lusid/models/fund_pnl_breakdown.py,sha256=FVWePhLbtAjdikBOG3yipSUD4fIbNnmsM7PsOe1cL4w,4421
@@ -663,9 +664,9 @@ lusid/models/operation.py,sha256=LtqUFww2hQy0sa9kdCpHPz3XSvtHxqsWtRKjRDku2TA,251
663
664
  lusid/models/operation_type.py,sha256=kUOhDAUWv4sYAaZwRlXwaowlr_jBw9uUmsW1ffRsMv8,644
664
665
  lusid/models/operator.py,sha256=pET4TePqHQQxhblcnIQjtda3Y7a5H864MUFMJBE4loE,797
665
666
  lusid/models/option_entry.py,sha256=KJfFze7xIJxeIJ7hXxJhkUydFhg9KJU4rIAfLdBaT8k,2136
666
- lusid/models/option_exercise_cash_event.py,sha256=nViNbPUYVS1h3ERy49a6R-mSJsVSboQzDBqMoeCptxI,10622
667
+ lusid/models/option_exercise_cash_event.py,sha256=jy-QjvfcznBRLkqoZ72JGSwiVnuQMMmbwkb20XAtJ_Y,11044
667
668
  lusid/models/option_exercise_election.py,sha256=XeES3Uy1-Vpj5VjmxZjJsaU5hbgvELp9FWWZl__Cnew,2546
668
- lusid/models/option_exercise_physical_event.py,sha256=XXlaE-Q1u3Fu01teR4-83amf3FmXVSb7jq5_MaU31Pk,11071
669
+ lusid/models/option_exercise_physical_event.py,sha256=0ERq50QEyeI_ZnCmi6jVBjDOtdRzp-Z9IvgnKLYCPjM,11493
669
670
  lusid/models/optionality_schedule.py,sha256=lZh9nWhUmmkcfzAjsM8qvTAtXf4Fm97vhIbqD-EIboU,5501
670
671
  lusid/models/order.py,sha256=-47dm6-P-pNB--pBRn6UxGCv7Az7ECBAgoykBdR3agM,9659
671
672
  lusid/models/order_by_spec.py,sha256=9RyLPdTBImMEcjhN2mq-BtMykndyNLZSpJ3xO_biaZk,2319
@@ -1037,6 +1038,7 @@ lusid/models/staging_rule_set.py,sha256=05h5vV_9s3V2MYoH7o1K8pmjlUq15jJSsmyJ5ObR
1037
1038
  lusid/models/step_schedule.py,sha256=1xCC_C_GzTIOY8GPUIaF75YoieJ6fwV4qQFQHTsJypg,4580
1038
1039
  lusid/models/stock_dividend_event.py,sha256=IbteGDGFk7P0yrAuGtu4nRXKktQLgcBSN2Ytm0S1gq0,9065
1039
1040
  lusid/models/stock_split_event.py,sha256=gP0-rWXwy23Kj6zV934xYCHq4dpO8DSeyYIFCvz-pjw,9045
1041
+ lusid/models/strategy.py,sha256=qDZ8BGyMP_xsEH1ipTEdB9WnkHU4DChb416gm2rdzEU,2522
1040
1042
  lusid/models/stream.py,sha256=TGFloyewF3hi9RLyg0K3z13zxgvqAlHt46_AJuP9l7E,2865
1041
1043
  lusid/models/string_comparison_type.py,sha256=4_CrV7WlDTrgAR866IyYXJZyVUXSNHBn7YrRdyiWKj0,799
1042
1044
  lusid/models/string_compliance_parameter.py,sha256=_DVIosVMDhLYoONZUcMuIre5Ku8JAfIWjHB_okBu-DU,5318
@@ -1060,7 +1062,7 @@ lusid/models/total_return_swap.py,sha256=x3RBIefY7oiI9MfIK3A2okvuAdeVEk025jp6F5g
1060
1062
  lusid/models/touch.py,sha256=OECUpEFcCT1kPT5SJIsoNHtR8k2AhEAbDd6P86NcF4s,2726
1061
1063
  lusid/models/trade_ticket.py,sha256=ONpDAdaWs3yfUqMxI7Mq0cYpX0aJkN8XH_9n9rIs5IA,2320
1062
1064
  lusid/models/trade_ticket_type.py,sha256=j7f2bfiA_cxaFtjZpT3Natl4BoaGAaEXF6E0ltEzTWE,706
1063
- lusid/models/transaction.py,sha256=_Ss6xjcpciz4hXfTI1Uf-tqGSOvOLoJBcFEYvQkk20o,12099
1065
+ lusid/models/transaction.py,sha256=ItU_ujzGcj7RR0br8zxrNCMXk2zO5bh5ZcriGoRdhB4,13742
1064
1066
  lusid/models/transaction_configuration_data.py,sha256=BSHXnMn6TWaubn2zTxPvbRUOsRtGYb0N4sDNUcf1SaY,4318
1065
1067
  lusid/models/transaction_configuration_data_request.py,sha256=mypVKRfltmkG5NEUGqDDyBYdIir3S1nkYzGL8BwHWgo,4398
1066
1068
  lusid/models/transaction_configuration_movement_data.py,sha256=ofaJZQOHloSpT4Y09Sgw-JtQq3RWNwkBl-JLMGg_yYo,7418
@@ -1080,7 +1082,7 @@ lusid/models/transaction_query_mode.py,sha256=q3QNcFSP-LwfdQF_yRUOZMd6ElemQm03yO
1080
1082
  lusid/models/transaction_query_parameters.py,sha256=sYKAouptXvwNtAzz2SdOi7F-9M5q2xOwqT1kjz8vSNE,3365
1081
1083
  lusid/models/transaction_reconciliation_request.py,sha256=pys1JU22geF_MiZwGBlzhiXQ_daHZ0Cffpce8Wvq7ec,4294
1082
1084
  lusid/models/transaction_reconciliation_request_v2.py,sha256=YjOKUfgsoXVlXLbAP2qDc8wsRV-Te-sxtsvKGJe1cjg,5946
1083
- lusid/models/transaction_request.py,sha256=F3Pj-YjwWEZsT_3GuTz6NAJv4-tuO5e5XAfKGlx_pl4,9896
1085
+ lusid/models/transaction_request.py,sha256=W0qAUjOVWrS7fVK2qP4VtETic5AAGmM1DPXu-6Rcfl8,10847
1084
1086
  lusid/models/transaction_roles.py,sha256=1r-BzcchffLl6p4lSUhRAUmsVdrl7Bvce2cCiwxJanE,839
1085
1087
  lusid/models/transaction_set_configuration_data.py,sha256=CmMrtyOxpcJd5LXW2egsTf4yPCkoJ7yGUA-WFL07zI4,4411
1086
1088
  lusid/models/transaction_set_configuration_data_request.py,sha256=YWx3s0gvxI-6Zh9HmrbcUw9SO2t7OoEq5rXYJyNOFYU,3947
@@ -1091,6 +1093,7 @@ lusid/models/transaction_template_specification.py,sha256=dggD7J8ZSUTznJddC_Sn65
1091
1093
  lusid/models/transaction_type.py,sha256=zcWUQPVY5JKEOzNWQls7TjTiKOB7QVY8iFh1zgJXYUc,5765
1092
1094
  lusid/models/transaction_type_alias.py,sha256=xL9k8kjgAcEPe5sfK8asHscvz7gLcAa6pC_eGgVvXlY,3532
1093
1095
  lusid/models/transaction_type_calculation.py,sha256=Re4rt0IuLxo1hgjDz-VyIgQhVat6w7Fh-DwUF19nYYs,2846
1096
+ lusid/models/transaction_type_details.py,sha256=GC-lanMnyYR_hKlUvU4yU0-exqE6CdMw1081wPUmIj0,3131
1094
1097
  lusid/models/transaction_type_movement.py,sha256=eG4MQrMi0P_ihxOcfsqPAnkYuOmwbho9xQDoAJWH2ro,8695
1095
1098
  lusid/models/transaction_type_property_mapping.py,sha256=2fmP3IJH-44GXE5-jt4Fd55xQscWTrEa76yjQJIUs_4,3249
1096
1099
  lusid/models/transaction_type_request.py,sha256=tuoF4_cUe0KLjF4FN_un_wGtraNfJAXoNrfudvA0zIc,5121
@@ -1224,6 +1227,6 @@ lusid/models/workspace_update_request.py,sha256=uUXEpX-dJ5UiL9w1wMxIFeovSBiTJ-vi
1224
1227
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1225
1228
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1226
1229
  lusid/rest.py,sha256=HQT__5LQEMu6_1sLKvYj-DI4FH1DJXBIPYfZCTTyrY4,13431
1227
- lusid_sdk-2.1.565.dist-info/METADATA,sha256=fRqk3AcJIIrTNowTDZPLltQc2AeDDP6uQtJA8dBEEZg,208988
1228
- lusid_sdk-2.1.565.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1229
- lusid_sdk-2.1.565.dist-info/RECORD,,
1230
+ lusid_sdk-2.1.580.dist-info/METADATA,sha256=LZEQTBrdcLTUVpXFIrH2HY_H0H8HFrlgMhDn0ko8jUI,209148
1231
+ lusid_sdk-2.1.580.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1232
+ lusid_sdk-2.1.580.dist-info/RECORD,,