lusid-sdk 2.1.264__py3-none-any.whl → 2.1.279__py3-none-any.whl

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

Potentially problematic release.


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

lusid/__init__.py CHANGED
@@ -189,6 +189,7 @@ from lusid.models.cancel_placements_response import CancelPlacementsResponse
189
189
  from lusid.models.cancelled_placement_result import CancelledPlacementResult
190
190
  from lusid.models.cap_floor import CapFloor
191
191
  from lusid.models.capital_distribution_event import CapitalDistributionEvent
192
+ from lusid.models.cash import Cash
192
193
  from lusid.models.cash_and_security_offer_election import CashAndSecurityOfferElection
193
194
  from lusid.models.cash_dependency import CashDependency
194
195
  from lusid.models.cash_dividend_event import CashDividendEvent
@@ -253,6 +254,7 @@ from lusid.models.compliance_template_parameter import ComplianceTemplateParamet
253
254
  from lusid.models.compliance_template_variation import ComplianceTemplateVariation
254
255
  from lusid.models.compliance_template_variation_dto import ComplianceTemplateVariationDto
255
256
  from lusid.models.compliance_template_variation_request import ComplianceTemplateVariationRequest
257
+ from lusid.models.component_filter import ComponentFilter
256
258
  from lusid.models.component_rule import ComponentRule
257
259
  from lusid.models.component_transaction import ComponentTransaction
258
260
  from lusid.models.composite_breakdown import CompositeBreakdown
@@ -1279,6 +1281,7 @@ __all__ = [
1279
1281
  "CancelledPlacementResult",
1280
1282
  "CapFloor",
1281
1283
  "CapitalDistributionEvent",
1284
+ "Cash",
1282
1285
  "CashAndSecurityOfferElection",
1283
1286
  "CashDependency",
1284
1287
  "CashDividendEvent",
@@ -1343,6 +1346,7 @@ __all__ = [
1343
1346
  "ComplianceTemplateVariation",
1344
1347
  "ComplianceTemplateVariationDto",
1345
1348
  "ComplianceTemplateVariationRequest",
1349
+ "ComponentFilter",
1346
1350
  "ComponentRule",
1347
1351
  "ComponentTransaction",
1348
1352
  "CompositeBreakdown",
lusid/configuration.py CHANGED
@@ -373,7 +373,7 @@ class Configuration:
373
373
  return "Python SDK Debug Report:\n"\
374
374
  "OS: {env}\n"\
375
375
  "Python Version: {pyversion}\n"\
376
- "Version of the API: 0.11.6697\n"\
376
+ "Version of the API: 0.11.6712\n"\
377
377
  "SDK Package Version: {package_version}".\
378
378
  format(env=sys.platform, pyversion=sys.version, package_version=package_version)
379
379
 
lusid/models/__init__.py CHANGED
@@ -110,6 +110,7 @@ from lusid.models.cancel_placements_response import CancelPlacementsResponse
110
110
  from lusid.models.cancelled_placement_result import CancelledPlacementResult
111
111
  from lusid.models.cap_floor import CapFloor
112
112
  from lusid.models.capital_distribution_event import CapitalDistributionEvent
113
+ from lusid.models.cash import Cash
113
114
  from lusid.models.cash_and_security_offer_election import CashAndSecurityOfferElection
114
115
  from lusid.models.cash_dependency import CashDependency
115
116
  from lusid.models.cash_dividend_event import CashDividendEvent
@@ -174,6 +175,7 @@ from lusid.models.compliance_template_parameter import ComplianceTemplateParamet
174
175
  from lusid.models.compliance_template_variation import ComplianceTemplateVariation
175
176
  from lusid.models.compliance_template_variation_dto import ComplianceTemplateVariationDto
176
177
  from lusid.models.compliance_template_variation_request import ComplianceTemplateVariationRequest
178
+ from lusid.models.component_filter import ComponentFilter
177
179
  from lusid.models.component_rule import ComponentRule
178
180
  from lusid.models.component_transaction import ComponentTransaction
179
181
  from lusid.models.composite_breakdown import CompositeBreakdown
@@ -1122,6 +1124,7 @@ __all__ = [
1122
1124
  "CancelledPlacementResult",
1123
1125
  "CapFloor",
1124
1126
  "CapitalDistributionEvent",
1127
+ "Cash",
1125
1128
  "CashAndSecurityOfferElection",
1126
1129
  "CashDependency",
1127
1130
  "CashDividendEvent",
@@ -1186,6 +1189,7 @@ __all__ = [
1186
1189
  "ComplianceTemplateVariation",
1187
1190
  "ComplianceTemplateVariationDto",
1188
1191
  "ComplianceTemplateVariationRequest",
1192
+ "ComponentFilter",
1189
1193
  "ComponentRule",
1190
1194
  "ComponentTransaction",
1191
1195
  "CompositeBreakdown",
lusid/models/cash.py ADDED
@@ -0,0 +1,93 @@
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, Union
22
+ from pydantic.v1 import Field, StrictFloat, StrictInt, StrictStr, validator
23
+ from lusid.models.lusid_instrument import LusidInstrument
24
+
25
+ class Cash(LusidInstrument):
26
+ """
27
+ LUSID representation of Cash which is the sum of one or more cashflows from the past. # noqa: E501
28
+ """
29
+ dom_ccy: StrictStr = Field(..., alias="domCcy", description="The domestic currency of the instrument.")
30
+ amount: Union[StrictFloat, StrictInt] = Field(..., description="Cash amount.")
31
+ 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")
32
+ additional_properties: Dict[str, Any] = {}
33
+ __properties = ["instrumentType", "domCcy", "amount"]
34
+
35
+ @validator('instrument_type')
36
+ def instrument_type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value not in ('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'):
39
+ raise ValueError("must be one of enum values ('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')")
40
+ return value
41
+
42
+ class Config:
43
+ """Pydantic configuration"""
44
+ allow_population_by_field_name = True
45
+ validate_assignment = True
46
+
47
+ def to_str(self) -> str:
48
+ """Returns the string representation of the model using alias"""
49
+ return pprint.pformat(self.dict(by_alias=True))
50
+
51
+ def to_json(self) -> str:
52
+ """Returns the JSON representation of the model using alias"""
53
+ return json.dumps(self.to_dict())
54
+
55
+ @classmethod
56
+ def from_json(cls, json_str: str) -> Cash:
57
+ """Create an instance of Cash from a JSON string"""
58
+ return cls.from_dict(json.loads(json_str))
59
+
60
+ def to_dict(self):
61
+ """Returns the dictionary representation of the model using alias"""
62
+ _dict = self.dict(by_alias=True,
63
+ exclude={
64
+ "additional_properties"
65
+ },
66
+ exclude_none=True)
67
+ # puts key-value pairs in additional_properties in the top level
68
+ if self.additional_properties is not None:
69
+ for _key, _value in self.additional_properties.items():
70
+ _dict[_key] = _value
71
+
72
+ return _dict
73
+
74
+ @classmethod
75
+ def from_dict(cls, obj: dict) -> Cash:
76
+ """Create an instance of Cash from a dict"""
77
+ if obj is None:
78
+ return None
79
+
80
+ if not isinstance(obj, dict):
81
+ return Cash.parse_obj(obj)
82
+
83
+ _obj = Cash.parse_obj({
84
+ "instrument_type": obj.get("instrumentType"),
85
+ "dom_ccy": obj.get("domCcy"),
86
+ "amount": obj.get("amount")
87
+ })
88
+ # store additional fields in additional_properties
89
+ for _key in obj.keys():
90
+ if _key not in cls.__properties:
91
+ _obj.additional_properties[_key] = obj.get(_key)
92
+
93
+ return _obj
@@ -0,0 +1,85 @@
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 ComponentFilter(BaseModel):
25
+ """
26
+ ComponentFilter
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
+ __properties = ["filterId", "filter"]
31
+
32
+ @validator('filter_id')
33
+ def filter_id_validate_regular_expression(cls, value):
34
+ """Validates the regular expression"""
35
+ if not re.match(r"^[\s\S]*$", value):
36
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
37
+ return value
38
+
39
+ @validator('filter')
40
+ def filter_validate_regular_expression(cls, value):
41
+ """Validates the regular expression"""
42
+ if not re.match(r"^[\s\S]*$", value):
43
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
44
+ return value
45
+
46
+ class Config:
47
+ """Pydantic configuration"""
48
+ allow_population_by_field_name = True
49
+ validate_assignment = True
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.dict(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> ComponentFilter:
61
+ """Create an instance of ComponentFilter from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self):
65
+ """Returns the dictionary representation of the model using alias"""
66
+ _dict = self.dict(by_alias=True,
67
+ exclude={
68
+ },
69
+ exclude_none=True)
70
+ return _dict
71
+
72
+ @classmethod
73
+ def from_dict(cls, obj: dict) -> ComponentFilter:
74
+ """Create an instance of ComponentFilter from a dict"""
75
+ if obj is None:
76
+ return None
77
+
78
+ if not isinstance(obj, dict):
79
+ return ComponentFilter.parse_obj(obj)
80
+
81
+ _obj = ComponentFilter.parse_obj({
82
+ "filter_id": obj.get("filterId"),
83
+ "filter": obj.get("filter")
84
+ })
85
+ return _obj
@@ -18,15 +18,16 @@ 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, validator
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, conlist, constr, validator
23
+ from lusid.models.component_filter import ComponentFilter
23
24
 
24
25
  class ComponentRule(BaseModel):
25
26
  """
26
27
  ComponentRule
27
28
  """
28
29
  match_criteria: constr(strict=True, max_length=16384, min_length=1) = Field(..., alias="matchCriteria")
29
- components: Optional[Dict[str, StrictStr]] = None
30
+ components: Optional[conlist(ComponentFilter)] = None
30
31
  __properties = ["matchCriteria", "components"]
31
32
 
32
33
  @validator('match_criteria')
@@ -60,11 +61,13 @@ class ComponentRule(BaseModel):
60
61
  exclude={
61
62
  },
62
63
  exclude_none=True)
63
- # set to None if components (nullable) is None
64
- # and __fields_set__ contains the field
65
- if self.components is None and "components" in self.__fields_set__:
66
- _dict['components'] = None
67
-
64
+ # override the default output from pydantic by calling `to_dict()` of each item in components (list)
65
+ _items = []
66
+ if self.components:
67
+ for _item in self.components:
68
+ if _item:
69
+ _items.append(_item.to_dict())
70
+ _dict['components'] = _items
68
71
  return _dict
69
72
 
70
73
  @classmethod
@@ -78,6 +81,6 @@ class ComponentRule(BaseModel):
78
81
 
79
82
  _obj = ComponentRule.parse_obj({
80
83
  "match_criteria": obj.get("matchCriteria"),
81
- "components": obj.get("components")
84
+ "components": [ComponentFilter.from_dict(_item) for _item in obj.get("components")] if obj.get("components") is not None else None
82
85
  })
83
86
  return _obj
@@ -35,9 +35,10 @@ class ContractForDifference(LusidInstrument):
35
35
  type: constr(strict=True, min_length=1) = Field(..., description="The type of CFD. Supported string (enumeration) values are: [Cash, Futures].")
36
36
  underlying_ccy: StrictStr = Field(..., alias="underlyingCcy", description="The currency of the underlying")
37
37
  underlying_identifier: constr(strict=True, min_length=1) = Field(..., alias="underlyingIdentifier", description="External market codes and identifiers for the CFD, e.g. RIC. Supported string (enumeration) values are: [LusidInstrumentId, Isin, Sedol, Cusip, ClientInternal, Figi, RIC, QuotePermId, REDCode, BBGId, ICECode].")
38
+ lot_size: Optional[StrictInt] = Field(None, alias="lotSize", description="CFD LotSize, the minimum number of shares that can be bought or sold at once. Optional, if set must be non-negative, if not set defaults to 1.")
38
39
  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")
39
40
  additional_properties: Dict[str, Any] = {}
40
- __properties = ["instrumentType", "startDate", "maturityDate", "code", "contractSize", "payCcy", "referenceRate", "type", "underlyingCcy", "underlyingIdentifier"]
41
+ __properties = ["instrumentType", "startDate", "maturityDate", "code", "contractSize", "payCcy", "referenceRate", "type", "underlyingCcy", "underlyingIdentifier", "lotSize"]
41
42
 
42
43
  @validator('instrument_type')
43
44
  def instrument_type_validate_enum(cls, value):
@@ -97,7 +98,8 @@ class ContractForDifference(LusidInstrument):
97
98
  "reference_rate": obj.get("referenceRate"),
98
99
  "type": obj.get("type"),
99
100
  "underlying_ccy": obj.get("underlyingCcy"),
100
- "underlying_identifier": obj.get("underlyingIdentifier")
101
+ "underlying_identifier": obj.get("underlyingIdentifier"),
102
+ "lot_size": obj.get("lotSize")
101
103
  })
102
104
  # store additional fields in additional_properties
103
105
  for _key in obj.keys():
lusid/models/fund.py CHANGED
@@ -35,6 +35,7 @@ class Fund(BaseModel):
35
35
  id: ResourceId = Field(...)
36
36
  display_name: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="displayName", description="The name of the Fund.")
37
37
  description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Fund.")
38
+ fund_configuration_id: Optional[ResourceId] = Field(None, alias="fundConfigurationId")
38
39
  abor_id: ResourceId = Field(..., alias="aborId")
39
40
  share_class_instruments: Optional[conlist(InstrumentResolutionDetail)] = Field(None, alias="shareClassInstruments", description="Details the user-provided instrument identifiers and the instrument resolved from them.")
40
41
  type: constr(strict=True, min_length=1) = Field(..., description="The type of fund; 'Standalone', 'Master' or 'Feeder'")
@@ -44,7 +45,7 @@ class Fund(BaseModel):
44
45
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Fund.")
45
46
  version: Optional[Version] = None
46
47
  links: Optional[conlist(Link)] = None
47
- __properties = ["href", "id", "displayName", "description", "aborId", "shareClassInstruments", "type", "inceptionDate", "decimalPlaces", "yearEndDate", "properties", "version", "links"]
48
+ __properties = ["href", "id", "displayName", "description", "fundConfigurationId", "aborId", "shareClassInstruments", "type", "inceptionDate", "decimalPlaces", "yearEndDate", "properties", "version", "links"]
48
49
 
49
50
  @validator('description')
50
51
  def description_validate_regular_expression(cls, value):
@@ -83,6 +84,9 @@ class Fund(BaseModel):
83
84
  # override the default output from pydantic by calling `to_dict()` of id
84
85
  if self.id:
85
86
  _dict['id'] = self.id.to_dict()
87
+ # override the default output from pydantic by calling `to_dict()` of fund_configuration_id
88
+ if self.fund_configuration_id:
89
+ _dict['fundConfigurationId'] = self.fund_configuration_id.to_dict()
86
90
  # override the default output from pydantic by calling `to_dict()` of abor_id
87
91
  if self.abor_id:
88
92
  _dict['aborId'] = self.abor_id.to_dict()
@@ -164,6 +168,7 @@ class Fund(BaseModel):
164
168
  "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
165
169
  "display_name": obj.get("displayName"),
166
170
  "description": obj.get("description"),
171
+ "fund_configuration_id": ResourceId.from_dict(obj.get("fundConfigurationId")) if obj.get("fundConfigurationId") is not None else None,
167
172
  "abor_id": ResourceId.from_dict(obj.get("aborId")) if obj.get("aborId") is not None else None,
168
173
  "share_class_instruments": [InstrumentResolutionDetail.from_dict(_item) for _item in obj.get("shareClassInstruments")] if obj.get("shareClassInstruments") is not None else None,
169
174
  "type": obj.get("type"),
@@ -32,6 +32,7 @@ class FundRequest(BaseModel):
32
32
  code: constr(strict=True, max_length=64, min_length=1) = Field(..., description="The code given for the Fund.")
33
33
  display_name: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="displayName", description="The name of the Fund.")
34
34
  description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Fund.")
35
+ fund_configuration_id: Optional[ResourceId] = Field(None, alias="fundConfigurationId")
35
36
  abor_id: ResourceId = Field(..., alias="aborId")
36
37
  share_class_instrument_scopes: Optional[conlist(StrictStr, max_items=1)] = Field(None, alias="shareClassInstrumentScopes", description="The scopes in which the instruments lie, currently limited to one.")
37
38
  share_class_instruments: Optional[conlist(InstrumentResolutionDetail)] = Field(None, alias="shareClassInstruments", description="Details the user-provided instrument identifiers and the instrument resolved from them.")
@@ -40,7 +41,7 @@ class FundRequest(BaseModel):
40
41
  decimal_places: Optional[conint(strict=True, le=30, ge=0)] = Field(None, alias="decimalPlaces", description="Number of decimal places for reporting")
41
42
  year_end_date: DayMonth = Field(..., alias="yearEndDate")
42
43
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="A set of properties for the Fund.")
43
- __properties = ["code", "displayName", "description", "aborId", "shareClassInstrumentScopes", "shareClassInstruments", "type", "inceptionDate", "decimalPlaces", "yearEndDate", "properties"]
44
+ __properties = ["code", "displayName", "description", "fundConfigurationId", "aborId", "shareClassInstrumentScopes", "shareClassInstruments", "type", "inceptionDate", "decimalPlaces", "yearEndDate", "properties"]
44
45
 
45
46
  @validator('code')
46
47
  def code_validate_regular_expression(cls, value):
@@ -83,6 +84,9 @@ class FundRequest(BaseModel):
83
84
  exclude={
84
85
  },
85
86
  exclude_none=True)
87
+ # override the default output from pydantic by calling `to_dict()` of fund_configuration_id
88
+ if self.fund_configuration_id:
89
+ _dict['fundConfigurationId'] = self.fund_configuration_id.to_dict()
86
90
  # override the default output from pydantic by calling `to_dict()` of abor_id
87
91
  if self.abor_id:
88
92
  _dict['aborId'] = self.abor_id.to_dict()
@@ -148,6 +152,7 @@ class FundRequest(BaseModel):
148
152
  "code": obj.get("code"),
149
153
  "display_name": obj.get("displayName"),
150
154
  "description": obj.get("description"),
155
+ "fund_configuration_id": ResourceId.from_dict(obj.get("fundConfigurationId")) if obj.get("fundConfigurationId") is not None else None,
151
156
  "abor_id": ResourceId.from_dict(obj.get("aborId")) if obj.get("aborId") is not None else None,
152
157
  "share_class_instrument_scopes": obj.get("shareClassInstrumentScopes"),
153
158
  "share_class_instruments": [InstrumentResolutionDetail.from_dict(_item) for _item in obj.get("shareClassInstruments")] if obj.get("shareClassInstruments") is not None else None,
@@ -39,7 +39,8 @@ class FuturesContractDetails(BaseModel):
39
39
  ticker_step: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="tickerStep", description="Minimal step size change in ticker.")
40
40
  unit_value: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="unitValue", description="The value in the currency of a 1 unit change in the contract price.")
41
41
  calendars: Optional[conlist(StrictStr)] = Field(None, description="Holiday calendars that apply to yield-to-price conversions (i.e. for BRL futures).")
42
- __properties = ["domCcy", "fgnCcy", "assetClass", "contractCode", "contractMonth", "contractSize", "convention", "country", "description", "exchangeCode", "exchangeName", "tickerStep", "unitValue", "calendars"]
42
+ delivery_type: Optional[StrictStr] = Field(None, alias="deliveryType", description="Delivery type to be used on settling the contract. Optional: Defaults to DeliveryType.Physical if not provided. Supported string (enumeration) values are: [Cash, Physical].")
43
+ __properties = ["domCcy", "fgnCcy", "assetClass", "contractCode", "contractMonth", "contractSize", "convention", "country", "description", "exchangeCode", "exchangeName", "tickerStep", "unitValue", "calendars", "deliveryType"]
43
44
 
44
45
  class Config:
45
46
  """Pydantic configuration"""
@@ -100,6 +101,11 @@ class FuturesContractDetails(BaseModel):
100
101
  if self.calendars is None and "calendars" in self.__fields_set__:
101
102
  _dict['calendars'] = None
102
103
 
104
+ # set to None if delivery_type (nullable) is None
105
+ # and __fields_set__ contains the field
106
+ if self.delivery_type is None and "delivery_type" in self.__fields_set__:
107
+ _dict['deliveryType'] = None
108
+
103
109
  return _dict
104
110
 
105
111
  @classmethod
@@ -125,6 +131,7 @@ class FuturesContractDetails(BaseModel):
125
131
  "exchange_name": obj.get("exchangeName"),
126
132
  "ticker_step": obj.get("tickerStep"),
127
133
  "unit_value": obj.get("unitValue"),
128
- "calendars": obj.get("calendars")
134
+ "calendars": obj.get("calendars"),
135
+ "delivery_type": obj.get("deliveryType")
129
136
  })
130
137
  return _obj
@@ -49,6 +49,7 @@ class LusidInstrument(BaseModel):
49
49
  'Basket': 'Basket',
50
50
  'Bond': 'Bond',
51
51
  'CapFloor': 'CapFloor',
52
+ 'Cash': 'Cash',
52
53
  'CashPerpetual': 'CashPerpetual',
53
54
  'CdsIndex': 'CdsIndex',
54
55
  'ComplexBond': 'ComplexBond',
@@ -101,7 +102,7 @@ class LusidInstrument(BaseModel):
101
102
  return json.dumps(self.to_dict())
102
103
 
103
104
  @classmethod
104
- def from_json(cls, json_str: str) -> Union(Basket, Bond, CapFloor, CashPerpetual, CdsIndex, ComplexBond, ContractForDifference, CreditDefaultSwap, Equity, EquityOption, EquitySwap, ExchangeTradedOption, ExoticInstrument, FlexibleLoan, ForwardRateAgreement, FundShareClass, Future, FxForward, FxOption, FxSwap, InflationLeg, InflationLinkedBond, InflationSwap, InstrumentLeg, InterestRateSwap, InterestRateSwaption, ReferenceInstrument, Repo, SimpleCashFlowLoan, SimpleInstrument, TermDeposit, TotalReturnSwap):
105
+ def from_json(cls, json_str: str) -> Union(Basket, Bond, CapFloor, Cash, CashPerpetual, CdsIndex, ComplexBond, ContractForDifference, CreditDefaultSwap, Equity, EquityOption, EquitySwap, ExchangeTradedOption, ExoticInstrument, FlexibleLoan, ForwardRateAgreement, FundShareClass, Future, FxForward, FxOption, FxSwap, InflationLeg, InflationLinkedBond, InflationSwap, InstrumentLeg, InterestRateSwap, InterestRateSwaption, ReferenceInstrument, Repo, SimpleCashFlowLoan, SimpleInstrument, TermDeposit, TotalReturnSwap):
105
106
  """Create an instance of LusidInstrument from a JSON string"""
106
107
  return cls.from_dict(json.loads(json_str))
107
108
 
@@ -114,7 +115,7 @@ class LusidInstrument(BaseModel):
114
115
  return _dict
115
116
 
116
117
  @classmethod
117
- def from_dict(cls, obj: dict) -> Union(Basket, Bond, CapFloor, CashPerpetual, CdsIndex, ComplexBond, ContractForDifference, CreditDefaultSwap, Equity, EquityOption, EquitySwap, ExchangeTradedOption, ExoticInstrument, FlexibleLoan, ForwardRateAgreement, FundShareClass, Future, FxForward, FxOption, FxSwap, InflationLeg, InflationLinkedBond, InflationSwap, InstrumentLeg, InterestRateSwap, InterestRateSwaption, ReferenceInstrument, Repo, SimpleCashFlowLoan, SimpleInstrument, TermDeposit, TotalReturnSwap):
118
+ def from_dict(cls, obj: dict) -> Union(Basket, Bond, CapFloor, Cash, CashPerpetual, CdsIndex, ComplexBond, ContractForDifference, CreditDefaultSwap, Equity, EquityOption, EquitySwap, ExchangeTradedOption, ExoticInstrument, FlexibleLoan, ForwardRateAgreement, FundShareClass, Future, FxForward, FxOption, FxSwap, InflationLeg, InflationLinkedBond, InflationSwap, InstrumentLeg, InterestRateSwap, InterestRateSwaption, ReferenceInstrument, Repo, SimpleCashFlowLoan, SimpleInstrument, TermDeposit, TotalReturnSwap):
118
119
  """Create an instance of LusidInstrument from a dict"""
119
120
  # look up the object type based on discriminator mapping
120
121
  object_type = cls.get_discriminator_value(obj)
@@ -28,7 +28,7 @@ class MarketDataKeyRule(BaseModel):
28
28
  key: constr(strict=True, max_length=128, min_length=0) = Field(..., description="A dot-separated string that defines a pattern for matching market data dependencies. The form of the string depends on the type of the dependency; see below for basic types and the Knowledge Base for further info. Quote lookup: \"Quote.{CodeType}.*\" e.g. \"Quote.RIC.*\" refers to 'any RIC quote' Fx rates: \"Fx.CurrencyPair.*\", which refers to 'any FX rate' Discounting curves: \"Rates.{Currency}.{Currency}OIS e.g. \"Rates.USD.USDOIS\" refers to the OIS USD discounting curve For non-fx and non-quote rules, trailing parameters can be replaced by the wildcard character '*'. e.g. \"Rates.*.*\" matches any dependency on a discounting curve.")
29
29
  supplier: constr(strict=True, max_length=32, min_length=0) = Field(..., description="The market data supplier (where the data comes from)")
30
30
  data_scope: constr(strict=True, max_length=256, min_length=1) = Field(..., alias="dataScope", description="The scope in which the data should be found when using this rule.")
31
- quote_type: StrictStr = Field(..., alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice")
31
+ quote_type: StrictStr = Field(..., alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
32
32
  field: Optional[constr(strict=True, max_length=32, min_length=0)] = Field(None, description="The conceptual qualification for the field, typically 'bid', 'mid' (default), or 'ask', but can also be 'open', 'close', etc. When resolving quotes from LUSID's database, only quotes whose Field is identical to the Field specified here will be accepted as market data. When resolving data from an external supplier, the Field must be one of a defined set for the given supplier. Note: Applies to the retrieval of quotes only. Has no impact on the resolution of complex market data.")
33
33
  quote_interval: Optional[constr(strict=True, max_length=16, min_length=0)] = Field(None, alias="quoteInterval", description="Shorthand for the time interval used to select market data. This must be a dot-separated string nominating a start and end date, for example '5D.0D' to look back 5 days from today (0 days ago). The syntax is <i>int</i><i>char</i>.<i>int</i><i>char</i>, where <i>char</i> is one of D(ay), Bd(business day), W(eek), M(onth) or Y(ear). Business days are calculated using the calendars specified on the Valuation Request. If no calendar is provided in the request, then it will default to only skipping weekends. For example, if the valuation date is a Monday, then a quote interval of \"1Bd\" would behave as \"3D\", looking back to the Friday. Data with effectiveAt on the weekend will still be found in that window.")
34
34
  as_at: Optional[datetime] = Field(None, alias="asAt", description="The AsAt predicate specification.")
@@ -47,8 +47,8 @@ class MarketDataKeyRule(BaseModel):
47
47
  @validator('quote_type')
48
48
  def quote_type_validate_enum(cls, value):
49
49
  """Validates the enum"""
50
- if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice'):
51
- raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice')")
50
+ if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
51
+ raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
52
52
  return value
53
53
 
54
54
  class Config:
@@ -29,7 +29,7 @@ class MarketDataSpecificRule(BaseModel):
29
29
  key: constr(strict=True, max_length=128, min_length=0) = Field(..., description="The market data key pattern which this is a rule for. A dot separated string (A.B.C.D.*)")
30
30
  supplier: constr(strict=True, max_length=32, min_length=0) = Field(..., description="The market data supplier (where the data comes from)")
31
31
  data_scope: constr(strict=True, max_length=256, min_length=1) = Field(..., alias="dataScope", description="The scope in which the data should be found when using this rule.")
32
- quote_type: StrictStr = Field(..., alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice")
32
+ quote_type: StrictStr = Field(..., alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
33
33
  field: constr(strict=True, max_length=32, min_length=0) = Field(..., description="The conceptual qualification for the field, such as bid, mid, or ask. The field must be one of a defined set for the given supplier, in the same way as it is for the Finbourne.WebApi.Interface.Dto.Quotes.QuoteSeriesId")
34
34
  quote_interval: Optional[constr(strict=True, max_length=16, min_length=0)] = Field(None, alias="quoteInterval", description="Shorthand for the time interval used to select market data. This must be a dot-separated string nominating a start and end date, for example '5D.0D' to look back 5 days from today (0 days ago). The syntax is <i>int</i><i>char</i>.<i>int</i><i>char</i>, where <i>char</i> is one of D(ay), W(eek), M(onth) or Y(ear).")
35
35
  as_at: Optional[datetime] = Field(None, alias="asAt", description="The AsAt predicate specification.")
@@ -49,8 +49,8 @@ class MarketDataSpecificRule(BaseModel):
49
49
  @validator('quote_type')
50
50
  def quote_type_validate_enum(cls, value):
51
51
  """Validates the enum"""
52
- if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice'):
53
- raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice')")
52
+ if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
53
+ raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
54
54
  return value
55
55
 
56
56
  class Config:
@@ -25,15 +25,15 @@ class MarketQuote(BaseModel):
25
25
  """
26
26
  The market quote for an observable which will be used to calibrate the market data, including the format of the quote. e.g. a volatility quote for a specific strike and expiry the par rate of a swap This is a slimmed down version of a full Quote that can be stored in our QuoteStore to remove lineage, price source etc. for ease of use when creating complex market data. # noqa: E501
27
27
  """
28
- quote_type: StrictStr = Field(..., alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice")
28
+ quote_type: StrictStr = Field(..., alias="quoteType", description="The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
29
29
  value: Union[StrictFloat, StrictInt] = Field(..., description="Numeric value of the quote")
30
30
  __properties = ["quoteType", "value"]
31
31
 
32
32
  @validator('quote_type')
33
33
  def quote_type_validate_enum(cls, value):
34
34
  """Validates the enum"""
35
- if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice'):
36
- raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice')")
35
+ if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
36
+ raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
37
37
  return value
38
38
 
39
39
  class Config:
@@ -28,17 +28,14 @@ class QuoteSeriesId(BaseModel):
28
28
  provider: constr(strict=True, min_length=1) = Field(..., description="The platform or vendor that provided the quote. The available values are: Client, DataScope, Lusid, Edi, TraderMade, FactSet, SIX, Bloomberg, Rimes, ICE")
29
29
  price_source: Optional[StrictStr] = Field(None, alias="priceSource", description="The source or originator of the quote, e.g. a bank or financial institution.")
30
30
  instrument_id: constr(strict=True, min_length=1) = Field(..., alias="instrumentId", description="The value of the instrument identifier that uniquely identifies the instrument that the quote is for, e.g. 'BBG00JX0P539'.")
31
- instrument_id_type: Optional[StrictStr] = Field(..., alias="instrumentIdType", description="The type of instrument identifier used to uniquely identify the instrument that the quote is for, e.g. 'Figi'. The available values are: LusidInstrumentId, Figi, RIC, QuotePermId, Isin, CurrencyPair, ClientInternal, Sedol, Cusip")
32
- quote_type: Optional[StrictStr] = Field(..., alias="quoteType", description="The type of the quote. This allows for quotes other than prices e.g. rates or spreads to be used. The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice")
31
+ instrument_id_type: StrictStr = Field(..., alias="instrumentIdType", description="The type of instrument identifier used to uniquely identify the instrument that the quote is for, e.g. 'Figi'. The available values are: LusidInstrumentId, Figi, RIC, QuotePermId, Isin, CurrencyPair, ClientInternal, Sedol, Cusip")
32
+ quote_type: StrictStr = Field(..., alias="quoteType", description="The type of the quote. This allows for quotes other than prices e.g. rates or spreads to be used. The available values are: Price, Spread, Rate, LogNormalVol, NormalVol, ParSpread, IsdaSpread, Upfront, Index, Ratio, Delta, PoolFactor, InflationAssumption, DirtyPrice, PrincipalWriteOff, InterestDeferred, InterestShortfall")
33
33
  field: constr(strict=True, min_length=1) = Field(..., description="The field of the quote e.g. bid, mid, ask etc. This should be consistent across a time series of quotes. The allowed values depend on the provider according to the following rules: Client : *Any value is accepted*; DataScope : 'bid', 'mid', 'ask'; Lusid : *Any value is accepted*; Edi : 'bid', 'mid', 'ask', 'open', 'close', 'last'; TraderMade : 'bid', 'mid', 'ask', 'open', 'close', 'high', 'low'; FactSet : 'bid', 'mid', 'ask', 'open', 'close'; SIX : 'bid', 'mid', 'ask', 'open', 'close', 'last', 'referencePrice', 'highPrice', 'lowPrice', 'maxRedemptionPrice', 'maxSubscriptionPrice', 'openPrice', 'bestBidPrice', 'lastBidPrice', 'bestAskPrice', 'lastAskPrice'; Bloomberg : 'bid', 'mid', 'ask', 'open', 'close', 'last'; Rimes : 'bid', 'mid', 'ask', 'open', 'close', 'last'; ICE : 'ask', 'bid'")
34
34
  __properties = ["provider", "priceSource", "instrumentId", "instrumentIdType", "quoteType", "field"]
35
35
 
36
36
  @validator('instrument_id_type')
37
37
  def instrument_id_type_validate_enum(cls, value):
38
38
  """Validates the enum"""
39
- if value is None:
40
- return value
41
-
42
39
  if value not in ('LusidInstrumentId', 'Figi', 'RIC', 'QuotePermId', 'Isin', 'CurrencyPair', 'ClientInternal', 'Sedol', 'Cusip'):
43
40
  raise ValueError("must be one of enum values ('LusidInstrumentId', 'Figi', 'RIC', 'QuotePermId', 'Isin', 'CurrencyPair', 'ClientInternal', 'Sedol', 'Cusip')")
44
41
  return value
@@ -46,11 +43,8 @@ class QuoteSeriesId(BaseModel):
46
43
  @validator('quote_type')
47
44
  def quote_type_validate_enum(cls, value):
48
45
  """Validates the enum"""
49
- if value is None:
50
- return value
51
-
52
- if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice'):
53
- raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice')")
46
+ if value not in ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall'):
47
+ raise ValueError("must be one of enum values ('Price', 'Spread', 'Rate', 'LogNormalVol', 'NormalVol', 'ParSpread', 'IsdaSpread', 'Upfront', 'Index', 'Ratio', 'Delta', 'PoolFactor', 'InflationAssumption', 'DirtyPrice', 'PrincipalWriteOff', 'InterestDeferred', 'InterestShortfall')")
54
48
  return value
55
49
 
56
50
  class Config:
@@ -82,16 +76,6 @@ class QuoteSeriesId(BaseModel):
82
76
  if self.price_source is None and "price_source" in self.__fields_set__:
83
77
  _dict['priceSource'] = None
84
78
 
85
- # set to None if instrument_id_type (nullable) is None
86
- # and __fields_set__ contains the field
87
- if self.instrument_id_type is None and "instrument_id_type" in self.__fields_set__:
88
- _dict['instrumentIdType'] = None
89
-
90
- # set to None if quote_type (nullable) is None
91
- # and __fields_set__ contains the field
92
- if self.quote_type is None and "quote_type" in self.__fields_set__:
93
- _dict['quoteType'] = None
94
-
95
79
  return _dict
96
80
 
97
81
  @classmethod
@@ -43,6 +43,9 @@ class QuoteType(str, Enum):
43
43
  POOLFACTOR = 'PoolFactor'
44
44
  INFLATIONASSUMPTION = 'InflationAssumption'
45
45
  DIRTYPRICE = 'DirtyPrice'
46
+ PRINCIPALWRITEOFF = 'PrincipalWriteOff'
47
+ INTERESTDEFERRED = 'InterestDeferred'
48
+ INTERESTSHORTFALL = 'InterestShortfall'
46
49
 
47
50
  @classmethod
48
51
  def from_json(cls, json_str: str) -> QuoteType:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.264
3
+ Version: 2.1.279
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -29,8 +29,8 @@ FINBOURNE Technology
29
29
 
30
30
  This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
31
31
 
32
- - API version: 0.11.6697
33
- - Package version: 2.1.264
32
+ - API version: 0.11.6712
33
+ - Package version: 2.1.279
34
34
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
35
35
  For more information, please visit [https://www.finbourne.com](https://www.finbourne.com)
36
36
 
@@ -854,6 +854,7 @@ Class | Method | HTTP request | Description
854
854
  - [CancelledPlacementResult](docs/CancelledPlacementResult.md)
855
855
  - [CapFloor](docs/CapFloor.md)
856
856
  - [CapitalDistributionEvent](docs/CapitalDistributionEvent.md)
857
+ - [Cash](docs/Cash.md)
857
858
  - [CashAndSecurityOfferElection](docs/CashAndSecurityOfferElection.md)
858
859
  - [CashDependency](docs/CashDependency.md)
859
860
  - [CashDividendEvent](docs/CashDividendEvent.md)
@@ -918,6 +919,7 @@ Class | Method | HTTP request | Description
918
919
  - [ComplianceTemplateVariation](docs/ComplianceTemplateVariation.md)
919
920
  - [ComplianceTemplateVariationDto](docs/ComplianceTemplateVariationDto.md)
920
921
  - [ComplianceTemplateVariationRequest](docs/ComplianceTemplateVariationRequest.md)
922
+ - [ComponentFilter](docs/ComponentFilter.md)
921
923
  - [ComponentRule](docs/ComponentRule.md)
922
924
  - [ComponentTransaction](docs/ComponentTransaction.md)
923
925
  - [CompositeBreakdown](docs/CompositeBreakdown.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=M9woAUW08ZtwfxDhiZY0CE6lqoo3QLkyPYCVwaRVfMk,112276
1
+ lusid/__init__.py,sha256=4uUxr70SoVUe2qe-aibZWiOk-eqdh1kddeQVYNMqWfI,112404
2
2
  lusid/api/__init__.py,sha256=EuHJI-4kmmibn1IVmY9akKMT-R1Bnth9msFll5hlBGY,5652
3
3
  lusid/api/abor_api.py,sha256=AvgsHuWE7qRSYJhKveBE2htSjHpqqS0VNJrysAfwME0,159655
4
4
  lusid/api/abor_configuration_api.py,sha256=G2bKPtMYOZ2GhUrg-nPJtCa9XIZdZYK7oafcbJWDMP8,64033
@@ -68,7 +68,7 @@ lusid/api/transaction_portfolios_api.py,sha256=7G5m6iTQXTKCc6ASdxnlVJjvFascHxEgD
68
68
  lusid/api/translation_api.py,sha256=xTAaKEW96JTDIZBXCjxSguCa7Gz4oVd5jdObUE2egwo,20092
69
69
  lusid/api_client.py,sha256=dF6l9RAsdxdQjf6Qn4ny6LB-QXlJmsscWiozCvyyBFA,30709
70
70
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
71
- lusid/configuration.py,sha256=JsfFUbqN10k2aDEW9pHPilEG5kLEWWbtRD1LYamM3Ls,14404
71
+ lusid/configuration.py,sha256=AVkmLG-bck3dmxWkyT9MkEXHIun9DwH1ONBnkNA42Kw,14404
72
72
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
73
73
  lusid/extensions/__init__.py,sha256=dzDHEzpn-9smd2-_UMWQzeyX6Ha4jGf6fnqx7qxKxNI,630
74
74
  lusid/extensions/api_client.py,sha256=Ob06urm4Em3MLzgP_geyeeGsPCkU225msW_1kpIeABM,30567
@@ -82,7 +82,7 @@ lusid/extensions/rest.py,sha256=tjVCu-cRrYcjp-ttB975vebPKtBNyBWaeoAdO3QXG2I,1269
82
82
  lusid/extensions/retry.py,sha256=orBJ1uF1iT1IncjWX1iGHVqsCgTh0SBe9rtiV_sPnwk,11564
83
83
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
84
84
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
85
- lusid/models/__init__.py,sha256=Q0TBlFd761elWzPyxbQ6X2w9LVpARVivlWo_xcUfbKU,105592
85
+ lusid/models/__init__.py,sha256=YQten1au10WLZf0ewg5xhbqzyzVULrBkJQqoGDFG49k,105720
86
86
  lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
87
87
  lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
88
88
  lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
@@ -179,6 +179,7 @@ lusid/models/cancel_placements_response.py,sha256=xe43QiiMvapew4BvR1C3wj5tYgn-zL
179
179
  lusid/models/cancelled_placement_result.py,sha256=eW3lgoyFakoGKcFSp3WN11bpuJyJun9jm8rVS4hdxwg,3127
180
180
  lusid/models/cap_floor.py,sha256=njXRS6hQ-0fmlpaX7VVzLaxB5NpJHTYn_4HMp9e6BSA,6051
181
181
  lusid/models/capital_distribution_event.py,sha256=UXD4-9IBaDXgMWueV-ivEeJ8RDDbPsPAq6Xx4bH5dyg,6691
182
+ lusid/models/cash.py,sha256=2Cr5kt0P4mlmsMRwtiFNaMBHwa1YSDGcwhR8XrdWi18,4934
182
183
  lusid/models/cash_and_security_offer_election.py,sha256=9xxHftE8QRdsizLEXCyvxFdkPpm9KU3fxz8WNjJv430,3933
183
184
  lusid/models/cash_dependency.py,sha256=zwUJWL1OvD_DRCBLNRunbtsw9vBRXcri3hMmlu3oXGI,4182
184
185
  lusid/models/cash_dividend_event.py,sha256=Fp9gCJIWoRgBH52CPbRnDS_LIviso9rT0CuPGFZeCiw,6642
@@ -243,7 +244,8 @@ lusid/models/compliance_template_parameter.py,sha256=LWVk_yP-tYBkoUxKzqSozxnjeK8
243
244
  lusid/models/compliance_template_variation.py,sha256=mnbKZ78bbQyq7L3LtcXPT2DrymDvCIVR_pzDb4OQ0_Q,4961
244
245
  lusid/models/compliance_template_variation_dto.py,sha256=fWH4WbJjLPjpyb0p4_SVeRaVYyb22KOsthPo-sftggE,4300
245
246
  lusid/models/compliance_template_variation_request.py,sha256=UFy6md9GFHvKgH2GT0-Cwfg48pSvo2UtKcCYLFZG2js,4361
246
- lusid/models/component_rule.py,sha256=WMTPlx_YcDM5a51SJqF9N0WTJh4Sio2YFQqsJjgz9TM,2560
247
+ lusid/models/component_filter.py,sha256=lIRWmBzhjHiA3KOraTZ1jFbUBWR2bz5JUet9Kzx2N3I,2590
248
+ lusid/models/component_rule.py,sha256=k2yzTl1UTboGjkXa3aHIO0OOIcoaRKMo8OGXPGMgfBg,2819
247
249
  lusid/models/component_transaction.py,sha256=9q-Xj49CIIMWk7QZflkaunWUJAkHiKxaHqdc-owL_8Q,3645
248
250
  lusid/models/composite_breakdown.py,sha256=WfT-c2bvOmT9LP1zFI8V2cIWOLJ4LRsaLZH98IImZ8U,3350
249
251
  lusid/models/composite_breakdown_request.py,sha256=fjhlpBroC8ys0jwfglD-_HJlsDdp3mDIDmvdyD6llj8,5315
@@ -254,7 +256,7 @@ lusid/models/compounding.py,sha256=yfKEFwGOy8Nndk9IPo9sAfotNM9_bJTIa8b3huUymqw,5
254
256
  lusid/models/configuration_recipe.py,sha256=O9gOzlKxFhnnzMxZQwPEwc29wF9fPS86s771qWmcCnk,5894
255
257
  lusid/models/constant_volatility_surface.py,sha256=1l4eyD78UaUsyjkX7NhPTuGUYgJY-nXzs4ZACc0dQQs,5178
256
258
  lusid/models/constituents_adjustment_header.py,sha256=2wnnigKPOPttpRFJa8yzJspIhyfdLq_8_H5QLsWOQy0,3233
257
- lusid/models/contract_for_difference.py,sha256=eyxfU-0uZr3PsVPBNRyDDPkegsKPM5B30QQpxCRv4KM,7004
259
+ lusid/models/contract_for_difference.py,sha256=8kxB5x4t-FK-Cp1ODwJHTzKHprWLLATvStOXxNw95XE,7283
258
260
  lusid/models/corporate_action.py,sha256=L2jWWTX1qcCL4sxqJw9cp6xjjbGo1aezfHlt84TMRTg,4151
259
261
  lusid/models/corporate_action_source.py,sha256=n99ggLwqEUf2ik9Z882RIYVS29IZqI2LqYlPgOBF3zQ,5011
260
262
  lusid/models/corporate_action_transition.py,sha256=ZGFoyxH9IrTwlOWPzf7P81dsoRjrbUlYHwgNaeb7a_E,3508
@@ -409,18 +411,18 @@ lusid/models/flow_convention_name.py,sha256=HFTshKIRBvjLdmcd8FzM-6Jb6-dlq-yTOwjC
409
411
  lusid/models/flow_conventions.py,sha256=OJBFQ28_-Wp5VCQ_CXwLksvz--6kysJh3zUF8xM8ORE,10512
410
412
  lusid/models/forward_rate_agreement.py,sha256=PrTWedcDD8Zr3c7_Z6UrDMKwVtwAFtq5yWzg2Mukl0A,6660
411
413
  lusid/models/from_recipe.py,sha256=paSou6poZf5CHkswKhZXc8jXmVcxj7s7kJXRw4ucbfQ,2261
412
- lusid/models/fund.py,sha256=vTHl_8gL05ZlCw1Wx3pa6scifXqZ5BzLWq-m9pJteYA,8478
414
+ lusid/models/fund.py,sha256=4FENDtVBRDI59lTQ_LdffuIYIPGj7C-LUkL0Wtzn0cc,8958
413
415
  lusid/models/fund_configuration.py,sha256=c_IB3yaaStJWgwCfuqGgYoDqSW1phajM3RYFPVpN8Gs,6357
414
416
  lusid/models/fund_configuration_properties.py,sha256=hqKaBSMkSYC5UcWxkgDos41GYnm__6-Q23Z6SDsBgM4,4373
415
417
  lusid/models/fund_configuration_request.py,sha256=HP-B75VqsIKbnjfEnFVKHQHjxspQWcNOeC8YPz5hOYQ,5106
416
418
  lusid/models/fund_properties.py,sha256=f2PxknZIPrfAXR1MHSJxO1sdj_wNJfmulzYYEqdCByA,4242
417
- lusid/models/fund_request.py,sha256=h9dhzlamZhMN3LVzVfKrqIXi0tjoO6XSqi-oqrCvtD8,7865
419
+ lusid/models/fund_request.py,sha256=fBU3prGytCvKWfAzP0gHj4VUANarueKwB7r9evPoIEI,8345
418
420
  lusid/models/fund_share_class.py,sha256=06VL9vb5vKCEmNFQbKPmj_uvJjn9QAyk9WjdD5ICBAA,6623
419
421
  lusid/models/funding_leg.py,sha256=b_0D_GqQCPqOllNvb6VSqyjBO4H2v7YYefAj7joTsBI,7455
420
422
  lusid/models/funding_leg_options.py,sha256=_GxHVcvcsd96OaNcb7iHs43UUfrwVno_x2cNowUSwjw,3515
421
423
  lusid/models/future.py,sha256=9jcXTZJxaijpVAz-8-65Jv9yig4qYQEeU2z9oRdEPaU,9084
422
424
  lusid/models/future_expiry_event.py,sha256=88juc3yihAbsYpwMh3ZxrwrgU9C_piGTc_Z9YTbo-MI,5635
423
- lusid/models/futures_contract_details.py,sha256=crSsBLSWPR8R7gQiUC0XFsYG2GSQtlZIuTUcaJog8HE,7336
425
+ lusid/models/futures_contract_details.py,sha256=CjQVhrPcyBfyVdpob0UD8L5MM3velxwtYxFLyZlwKug,7903
424
426
  lusid/models/fx_conventions.py,sha256=hs2udXMqlr1OAwMZDgPjqF-NVDneZ-a8J8lrN90_d5g,2612
425
427
  lusid/models/fx_dependency.py,sha256=KAxeXfKxJBPeXk42egQTkladphCeHa58jqOKFXiVAeU,5214
426
428
  lusid/models/fx_forward.py,sha256=1_gRS1vvsE6Pm32Z-gWGYqPjprVv3mUYAmigGtVO0nA,8648
@@ -538,7 +540,7 @@ lusid/models/list_aggregation_response.py,sha256=VJR_hkvGitD_xVUwvAufhtQ5ibLI01M
538
540
  lusid/models/list_complex_market_data_with_meta_data_response.py,sha256=cniypfHR-ovUTyEFYlGpxUTfb_jI51TW_y0Q8SfS95o,3601
539
541
  lusid/models/loan_period.py,sha256=C8oJ0vYb4Z__hhB2MbZHcHy0GMI2RAoKBAwZ1E-7ZiI,2151
540
542
  lusid/models/lock_period_diary_entry_request.py,sha256=QlmA6zWLWuI0D5-97xg8_IdzaCTDnpWBHpOMYaL9vLI,3298
541
- lusid/models/lusid_instrument.py,sha256=hDbH0sqpWNJ4Z0rRL0kSurMLi9bYqWm006pfsuPnrDk,7537
543
+ lusid/models/lusid_instrument.py,sha256=WWj5q0fWiMx_YC-Wayn_kVr56_uQmIGQmNkGkhh6si0,7573
542
544
  lusid/models/lusid_problem_details.py,sha256=Y1yNxDwEJ-eP6m_5PsBAIFaJsmfmvqmwrdemWamss34,3844
543
545
  lusid/models/lusid_trade_ticket.py,sha256=cjiQkP4yJqjMnnnIC6O2mMPlC34enW9EtmuPMBRr7fs,9952
544
546
  lusid/models/lusid_unique_id.py,sha256=xZ2uBRFjQDmi7vcY2i7X8bc878gx8BMCIOIn2qeVO4Y,2137
@@ -548,15 +550,15 @@ lusid/models/mapping.py,sha256=iDaQpBRL0f0Q6sHePxs-vZi3dQPPVfUWLxFFfQ07QCM,4180
548
550
  lusid/models/mapping_rule.py,sha256=dsHfOokEp2HrX029E0JsTBmweNAvS9-RCugDDb04ZGc,4965
549
551
  lusid/models/market_context.py,sha256=1vSjCeaiosx6BdF5XbuVyFYXVZVyX3mrv_kEUCuOIA0,7596
550
552
  lusid/models/market_context_suppliers.py,sha256=njSyqndQ1zLVA2iyB8tU_ATeWtg4NqCuzkUsJGwYH_o,2514
551
- lusid/models/market_data_key_rule.py,sha256=Qd3z1R6LBQ_-cnyp1WQqfOiTr01Y1R01xb0SSiBwlZs,9275
553
+ lusid/models/market_data_key_rule.py,sha256=ewZvu_dANEIaW7hlNMc7mIa5-0f2aaQKWmWAbdOg92o,9455
552
554
  lusid/models/market_data_options.py,sha256=_BBEeqMCbfcmfGtD0fFr3z90kF3mhpsvNRBir1mImA0,3566
553
555
  lusid/models/market_data_options_type.py,sha256=NlFpXuMw8cVK5czQY0h0GJhjYP_wpPuOIpin_AzXKwM,697
554
556
  lusid/models/market_data_overrides.py,sha256=QuKrYw9r4rZjzeqltcnFffww0F5ZNiRpr8v15C95MLM,3921
555
- lusid/models/market_data_specific_rule.py,sha256=fnegd5MHEhSNn3fOX3H8YkGah7Y54iBfhEEbFXEcFLU,8280
557
+ lusid/models/market_data_specific_rule.py,sha256=6w6S9tOfZV-5HD5kAvcvCNHNCnSCO3vbkjb4ith9t4c,8460
556
558
  lusid/models/market_data_type.py,sha256=4NyCfdwiQjP1MZK_SovXB6IVrspTU56JhmxfSdNRweU,1583
557
559
  lusid/models/market_observable_type.py,sha256=E1cl-6yHelmR1b7CarmYNgRHWxhPrFknNrXZlwYywAk,801
558
560
  lusid/models/market_options.py,sha256=peTygbETrHWKcKnKsn4ItPbgu0PidKG8d2U-DCApCAo,6247
559
- lusid/models/market_quote.py,sha256=ZibHoxhLJcdtZ5AgZhyv8HS-jXRdLs8bKHlvTmaZqwI,3145
561
+ lusid/models/market_quote.py,sha256=Ra6tOiimR6Rdf7pAESEWW2IMZG669jU8eNje8NepYZg,3325
560
562
  lusid/models/match_criterion.py,sha256=cnLfFgO9k05dH7ooGS7s3d8BvyJNuVMDUh3Yt-SPuec,3568
561
563
  lusid/models/maturity_event.py,sha256=ChjKP2EkCeAvBXHf9MEGB29d2mWBQsB7_mwM9BBKRCM,4776
562
564
  lusid/models/merger_event.py,sha256=kS1fnAOpon3F5x4QFPO5c0qnHXSofSr_dBbT5wR_KpU,10857
@@ -757,8 +759,8 @@ lusid/models/quote_access_metadata_rule_id.py,sha256=qc2bySwq38ZvxuSW105zZehvRFW
757
759
  lusid/models/quote_dependency.py,sha256=1xlJfTJjjLVnN5lTY7JQLUT_5IPEUNtNaLUFfBjDC9E,4595
758
760
  lusid/models/quote_id.py,sha256=dPe08swumG6Hc4Rk2p2YstGQafjJRcdQTF78EqYZEPk,2419
759
761
  lusid/models/quote_instrument_id_type.py,sha256=xLx1GjV_zFUIJcpw2JmCyWmzd9QR6S7ORFajcjtAHBw,886
760
- lusid/models/quote_series_id.py,sha256=8R3ate409A4V-XqIviXhhxBWfKR0Ksy5R4pD7yuK3Mo,6325
761
- lusid/models/quote_type.py,sha256=dwYbZgzgJticaNVZmTZaYx6VgJtC30GtjDk9bPyseFQ,958
762
+ lusid/models/quote_series_id.py,sha256=_YpNZz5Gr8Fglegkuj6hDmRZj6nngMrjrHb1HsajxGY,5914
763
+ lusid/models/quote_type.py,sha256=18LUYnfqUvhGJ0utX4QZIDjmZGXxHT1_3dooUPVi5OI,1088
762
764
  lusid/models/raw_vendor_event.py,sha256=gj2rgb29Pyy-G8FCpQDiNJcXcr9NhtPX3UPb_2xPE4U,5590
763
765
  lusid/models/re_open_period_diary_entry_request.py,sha256=CcQqX5ekcLT_XTdWFJGZAmNQ2I5NMpzkwoLvfdoJ4X0,2792
764
766
  lusid/models/realised_gain_loss.py,sha256=SqOAkbqLzwVkwmV4V4kFRLB6n55CJJhIfSDVK7xRHvg,7190
@@ -1094,6 +1096,6 @@ lusid/models/weighted_instruments.py,sha256=1y_y_vw4-LPsbkQx4FOzWdZc5fJnzhVkf1D3
1094
1096
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1095
1097
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1096
1098
  lusid/rest.py,sha256=TNUzQ3yLNT2L053EdR7R0vNzQh2J3TlYD1T56Dye0W0,10138
1097
- lusid_sdk-2.1.264.dist-info/METADATA,sha256=LB7gT9ccVfKUNsMCojB3kpm0BB3G9l6EK0MXY77r3So,192500
1098
- lusid_sdk-2.1.264.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1099
- lusid_sdk-2.1.264.dist-info/RECORD,,
1099
+ lusid_sdk-2.1.279.dist-info/METADATA,sha256=W9Gney1tgyM6iVwJQZhmTWCMdYgpcz00fDWazrxkTAQ,192570
1100
+ lusid_sdk-2.1.279.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1101
+ lusid_sdk-2.1.279.dist-info/RECORD,,