lusid-sdk 2.1.242__py3-none-any.whl → 2.1.320__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.
Files changed (104) hide show
  1. lusid/__init__.py +66 -0
  2. lusid/api/__init__.py +2 -0
  3. lusid/api/compliance_api.py +191 -0
  4. lusid/api/entities_api.py +360 -0
  5. lusid/api/fee_types_api.py +143 -0
  6. lusid/api/fund_configurations_api.py +944 -0
  7. lusid/api/funds_api.py +1 -1
  8. lusid/api/order_management_api.py +479 -1
  9. lusid/api/scopes_api.py +38 -9
  10. lusid/configuration.py +1 -1
  11. lusid/extensions/configuration_loaders.py +9 -1
  12. lusid/models/__init__.py +64 -0
  13. lusid/models/accounting_method.py +3 -0
  14. lusid/models/accumulation_event.py +3 -3
  15. lusid/models/amortisation_event.py +3 -3
  16. lusid/models/bond_coupon_event.py +3 -3
  17. lusid/models/bond_default_event.py +3 -3
  18. lusid/models/bond_principal_event.py +3 -3
  19. lusid/models/cancel_orders_response.py +153 -0
  20. lusid/models/cancel_placements_response.py +153 -0
  21. lusid/models/cancelled_order_result.py +73 -0
  22. lusid/models/cancelled_placement_result.py +83 -0
  23. lusid/models/capital_distribution_event.py +3 -3
  24. lusid/models/cash.py +93 -0
  25. lusid/models/cash_dividend_event.py +3 -3
  26. lusid/models/cash_flow_event.py +3 -3
  27. lusid/models/close_event.py +3 -3
  28. lusid/models/compliance_run_configuration.py +73 -0
  29. lusid/models/component_filter.py +85 -0
  30. lusid/models/component_rule.py +77 -0
  31. lusid/models/contract_for_difference.py +4 -2
  32. lusid/models/create_derived_transaction_portfolio_request.py +3 -3
  33. lusid/models/create_transaction_portfolio_request.py +3 -3
  34. lusid/models/dependency_source_filter.py +9 -2
  35. lusid/models/dividend_option_event.py +3 -3
  36. lusid/models/dividend_reinvestment_event.py +3 -3
  37. lusid/models/exercise_event.py +3 -3
  38. lusid/models/expiry_event.py +3 -3
  39. lusid/models/fee_transaction_template_specification.py +79 -0
  40. lusid/models/fund.py +6 -1
  41. lusid/models/fund_amount.py +69 -0
  42. lusid/models/fund_configuration.py +151 -0
  43. lusid/models/fund_configuration_properties.py +115 -0
  44. lusid/models/fund_configuration_request.py +136 -0
  45. lusid/models/fund_pnl_breakdown.py +110 -0
  46. lusid/models/fund_previous_nav.py +69 -0
  47. lusid/models/fund_request.py +6 -1
  48. lusid/models/fund_valuation_point_data.py +152 -0
  49. lusid/models/future_expiry_event.py +100 -0
  50. lusid/models/futures_contract_details.py +9 -2
  51. lusid/models/fx_forward_settlement_event.py +3 -3
  52. lusid/models/informational_error_event.py +3 -3
  53. lusid/models/informational_event.py +3 -3
  54. lusid/models/instrument_entity.py +146 -0
  55. lusid/models/instrument_event.py +6 -5
  56. lusid/models/instrument_event_type.py +1 -0
  57. lusid/models/lusid_instrument.py +3 -2
  58. lusid/models/market_data_key_rule.py +3 -3
  59. lusid/models/market_data_specific_rule.py +3 -3
  60. lusid/models/market_quote.py +3 -3
  61. lusid/models/maturity_event.py +3 -3
  62. lusid/models/merger_event.py +3 -3
  63. lusid/models/model_selection.py +3 -3
  64. lusid/models/open_event.py +3 -3
  65. lusid/models/paged_resource_list_of_fund_configuration.py +113 -0
  66. lusid/models/placement_update_request.py +116 -0
  67. lusid/models/portfolio.py +3 -3
  68. lusid/models/portfolio_details.py +3 -3
  69. lusid/models/portfolio_without_href.py +3 -3
  70. lusid/models/pre_trade_configuration.py +69 -0
  71. lusid/models/previous_fund_valuation_point_data.py +79 -0
  72. lusid/models/previous_nav.py +73 -0
  73. lusid/models/previous_share_class_breakdown.py +81 -0
  74. lusid/models/pricing_model.py +1 -0
  75. lusid/models/property_definition.py +7 -1
  76. lusid/models/property_definition_entity.py +146 -0
  77. lusid/models/quote_series_id.py +4 -20
  78. lusid/models/quote_type.py +3 -0
  79. lusid/models/raw_vendor_event.py +3 -3
  80. lusid/models/reset_event.py +3 -3
  81. lusid/models/reverse_stock_split_event.py +3 -3
  82. lusid/models/scrip_dividend_event.py +3 -3
  83. lusid/models/share_class_amount.py +73 -0
  84. lusid/models/share_class_breakdown.py +163 -0
  85. lusid/models/share_class_data.py +79 -0
  86. lusid/models/share_class_details.py +108 -0
  87. lusid/models/share_class_pnl_breakdown.py +110 -0
  88. lusid/models/spin_off_event.py +3 -3
  89. lusid/models/staged_modification.py +8 -1
  90. lusid/models/stock_dividend_event.py +3 -3
  91. lusid/models/stock_split_event.py +3 -3
  92. lusid/models/template_field.py +3 -1
  93. lusid/models/transaction_configuration_movement_data.py +2 -2
  94. lusid/models/transaction_configuration_movement_data_request.py +1 -1
  95. lusid/models/transaction_field_map.py +8 -3
  96. lusid/models/transaction_type_movement.py +2 -2
  97. lusid/models/transition_event.py +3 -3
  98. lusid/models/trigger_event.py +3 -3
  99. lusid/models/unitisation_data.py +73 -0
  100. lusid/models/update_placements_response.py +153 -0
  101. lusid/models/valuation_point_data_response.py +30 -9
  102. {lusid_sdk-2.1.242.dist-info → lusid_sdk-2.1.320.dist-info}/METADATA +53 -215
  103. {lusid_sdk-2.1.242.dist-info → lusid_sdk-2.1.320.dist-info}/RECORD +104 -71
  104. {lusid_sdk-2.1.242.dist-info → lusid_sdk-2.1.320.dist-info}/WHEEL +0 -0
@@ -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:
@@ -27,15 +27,15 @@ class MaturityEvent(InstrumentEvent):
27
27
  Definition of a Maturity Event This is an event that describes the maturity of the instrument. # noqa: E501
28
28
  """
29
29
  maturity_date: datetime = Field(..., alias="maturityDate", description="Maturity date of the instrument")
30
- 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")
30
+ 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")
31
31
  additional_properties: Dict[str, Any] = {}
32
32
  __properties = ["instrumentEventType", "maturityDate"]
33
33
 
34
34
  @validator('instrument_event_type')
35
35
  def instrument_event_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
- if value not in ('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'):
38
- raise ValueError("must be one of enum values ('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')")
37
+ if value not in ('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'):
38
+ raise ValueError("must be one of enum values ('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')")
39
39
  return value
40
40
 
41
41
  class Config:
@@ -40,15 +40,15 @@ class MergerEvent(InstrumentEvent):
40
40
  payment_date: datetime = Field(..., alias="paymentDate", description="Date on which the merger takes place.")
41
41
  record_date: Optional[datetime] = Field(None, alias="recordDate", description="Optional. Date you have to be the holder of record of the original shares in order to receive the new shares.")
42
42
  security_elections: Optional[conlist(SecurityOfferElection)] = Field(None, alias="securityElections", description="List of possible SecurityOfferElections for this merger event")
43
- 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")
43
+ 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")
44
44
  additional_properties: Dict[str, Any] = {}
45
45
  __properties = ["instrumentEventType", "announcementDate", "cashAndSecurityOfferElections", "cashElections", "exDate", "fractionalUnitsCashCurrency", "fractionalUnitsCashPrice", "newInstrument", "paymentDate", "recordDate", "securityElections"]
46
46
 
47
47
  @validator('instrument_event_type')
48
48
  def instrument_event_type_validate_enum(cls, value):
49
49
  """Validates the enum"""
50
- if value not in ('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'):
51
- raise ValueError("must be one of enum values ('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')")
50
+ if value not in ('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'):
51
+ raise ValueError("must be one of enum values ('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')")
52
52
  return value
53
53
 
54
54
  class Config:
@@ -26,7 +26,7 @@ class ModelSelection(BaseModel):
26
26
  The combination of a library to use and a model in that library that defines which pricing code will evaluate instruments having a particular type/class. This allows us to control the model type and library for a given instrument. # noqa: E501
27
27
  """
28
28
  library: StrictStr = Field(..., description="The available values are: Lusid, RefinitivQps, RefinitivTracsWeb, VolMaster, IsdaCds, YieldBook, LusidCalc")
29
- model: StrictStr = Field(..., description="The available values are: SimpleStatic, Discounting, VendorDefault, BlackScholes, ConstantTimeValueOfMoney, Bachelier, ForwardWithPoints, ForwardWithPointsUndiscounted, ForwardSpecifiedRate, ForwardSpecifiedRateUndiscounted, IndexNav, IndexPrice, InlinedIndex, ForwardFromCurve, ForwardFromCurveUndiscounted, BlackScholesDigital, BjerksundStensland1993, BondLookupPricer, FlexibleLoanPricer")
29
+ model: StrictStr = Field(..., description="The available values are: SimpleStatic, Discounting, VendorDefault, BlackScholes, ConstantTimeValueOfMoney, Bachelier, ForwardWithPoints, ForwardWithPointsUndiscounted, ForwardSpecifiedRate, ForwardSpecifiedRateUndiscounted, IndexNav, IndexPrice, InlinedIndex, ForwardFromCurve, ForwardFromCurveUndiscounted, BlackScholesDigital, BjerksundStensland1993, BondLookupPricer, FlexibleLoanPricer, CdsLookupPricer")
30
30
  __properties = ["library", "model"]
31
31
 
32
32
  @validator('library')
@@ -39,8 +39,8 @@ class ModelSelection(BaseModel):
39
39
  @validator('model')
40
40
  def model_validate_enum(cls, value):
41
41
  """Validates the enum"""
42
- if value not in ('SimpleStatic', 'Discounting', 'VendorDefault', 'BlackScholes', 'ConstantTimeValueOfMoney', 'Bachelier', 'ForwardWithPoints', 'ForwardWithPointsUndiscounted', 'ForwardSpecifiedRate', 'ForwardSpecifiedRateUndiscounted', 'IndexNav', 'IndexPrice', 'InlinedIndex', 'ForwardFromCurve', 'ForwardFromCurveUndiscounted', 'BlackScholesDigital', 'BjerksundStensland1993', 'BondLookupPricer', 'FlexibleLoanPricer'):
43
- raise ValueError("must be one of enum values ('SimpleStatic', 'Discounting', 'VendorDefault', 'BlackScholes', 'ConstantTimeValueOfMoney', 'Bachelier', 'ForwardWithPoints', 'ForwardWithPointsUndiscounted', 'ForwardSpecifiedRate', 'ForwardSpecifiedRateUndiscounted', 'IndexNav', 'IndexPrice', 'InlinedIndex', 'ForwardFromCurve', 'ForwardFromCurveUndiscounted', 'BlackScholesDigital', 'BjerksundStensland1993', 'BondLookupPricer', 'FlexibleLoanPricer')")
42
+ if value not in ('SimpleStatic', 'Discounting', 'VendorDefault', 'BlackScholes', 'ConstantTimeValueOfMoney', 'Bachelier', 'ForwardWithPoints', 'ForwardWithPointsUndiscounted', 'ForwardSpecifiedRate', 'ForwardSpecifiedRateUndiscounted', 'IndexNav', 'IndexPrice', 'InlinedIndex', 'ForwardFromCurve', 'ForwardFromCurveUndiscounted', 'BlackScholesDigital', 'BjerksundStensland1993', 'BondLookupPricer', 'FlexibleLoanPricer', 'CdsLookupPricer'):
43
+ raise ValueError("must be one of enum values ('SimpleStatic', 'Discounting', 'VendorDefault', 'BlackScholes', 'ConstantTimeValueOfMoney', 'Bachelier', 'ForwardWithPoints', 'ForwardWithPointsUndiscounted', 'ForwardSpecifiedRate', 'ForwardSpecifiedRateUndiscounted', 'IndexNav', 'IndexPrice', 'InlinedIndex', 'ForwardFromCurve', 'ForwardFromCurveUndiscounted', 'BlackScholesDigital', 'BjerksundStensland1993', 'BondLookupPricer', 'FlexibleLoanPricer', 'CdsLookupPricer')")
44
44
  return value
45
45
 
46
46
  class Config:
@@ -27,15 +27,15 @@ class OpenEvent(InstrumentEvent):
27
27
  The opening of an instrument. # noqa: E501
28
28
  """
29
29
  anchor_date: Optional[datetime] = Field(None, alias="anchorDate", description="The date on the which the instrument was opened.")
30
- 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")
30
+ 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")
31
31
  additional_properties: Dict[str, Any] = {}
32
32
  __properties = ["instrumentEventType", "anchorDate"]
33
33
 
34
34
  @validator('instrument_event_type')
35
35
  def instrument_event_type_validate_enum(cls, value):
36
36
  """Validates the enum"""
37
- if value not in ('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'):
38
- raise ValueError("must be one of enum values ('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')")
37
+ if value not in ('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'):
38
+ raise ValueError("must be one of enum values ('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')")
39
39
  return value
40
40
 
41
41
  class Config:
@@ -0,0 +1,113 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, List, Optional
22
+ from pydantic.v1 import BaseModel, Field, StrictStr, conlist
23
+ from lusid.models.fund_configuration import FundConfiguration
24
+ from lusid.models.link import Link
25
+
26
+ class PagedResourceListOfFundConfiguration(BaseModel):
27
+ """
28
+ PagedResourceListOfFundConfiguration
29
+ """
30
+ next_page: Optional[StrictStr] = Field(None, alias="nextPage")
31
+ previous_page: Optional[StrictStr] = Field(None, alias="previousPage")
32
+ values: conlist(FundConfiguration) = Field(...)
33
+ href: Optional[StrictStr] = None
34
+ links: Optional[conlist(Link)] = None
35
+ __properties = ["nextPage", "previousPage", "values", "href", "links"]
36
+
37
+ class Config:
38
+ """Pydantic configuration"""
39
+ allow_population_by_field_name = True
40
+ validate_assignment = True
41
+
42
+ def to_str(self) -> str:
43
+ """Returns the string representation of the model using alias"""
44
+ return pprint.pformat(self.dict(by_alias=True))
45
+
46
+ def to_json(self) -> str:
47
+ """Returns the JSON representation of the model using alias"""
48
+ return json.dumps(self.to_dict())
49
+
50
+ @classmethod
51
+ def from_json(cls, json_str: str) -> PagedResourceListOfFundConfiguration:
52
+ """Create an instance of PagedResourceListOfFundConfiguration from a JSON string"""
53
+ return cls.from_dict(json.loads(json_str))
54
+
55
+ def to_dict(self):
56
+ """Returns the dictionary representation of the model using alias"""
57
+ _dict = self.dict(by_alias=True,
58
+ exclude={
59
+ },
60
+ exclude_none=True)
61
+ # override the default output from pydantic by calling `to_dict()` of each item in values (list)
62
+ _items = []
63
+ if self.values:
64
+ for _item in self.values:
65
+ if _item:
66
+ _items.append(_item.to_dict())
67
+ _dict['values'] = _items
68
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
69
+ _items = []
70
+ if self.links:
71
+ for _item in self.links:
72
+ if _item:
73
+ _items.append(_item.to_dict())
74
+ _dict['links'] = _items
75
+ # set to None if next_page (nullable) is None
76
+ # and __fields_set__ contains the field
77
+ if self.next_page is None and "next_page" in self.__fields_set__:
78
+ _dict['nextPage'] = None
79
+
80
+ # set to None if previous_page (nullable) is None
81
+ # and __fields_set__ contains the field
82
+ if self.previous_page is None and "previous_page" in self.__fields_set__:
83
+ _dict['previousPage'] = None
84
+
85
+ # set to None if href (nullable) is None
86
+ # and __fields_set__ contains the field
87
+ if self.href is None and "href" in self.__fields_set__:
88
+ _dict['href'] = None
89
+
90
+ # set to None if links (nullable) is None
91
+ # and __fields_set__ contains the field
92
+ if self.links is None and "links" in self.__fields_set__:
93
+ _dict['links'] = None
94
+
95
+ return _dict
96
+
97
+ @classmethod
98
+ def from_dict(cls, obj: dict) -> PagedResourceListOfFundConfiguration:
99
+ """Create an instance of PagedResourceListOfFundConfiguration from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return PagedResourceListOfFundConfiguration.parse_obj(obj)
105
+
106
+ _obj = PagedResourceListOfFundConfiguration.parse_obj({
107
+ "next_page": obj.get("nextPage"),
108
+ "previous_page": obj.get("previousPage"),
109
+ "values": [FundConfiguration.from_dict(_item) for _item in obj.get("values")] if obj.get("values") is not None else None,
110
+ "href": obj.get("href"),
111
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
112
+ })
113
+ return _obj
@@ -0,0 +1,116 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ LUSID API
5
+
6
+ FINBOURNE Technology # noqa: E501
7
+
8
+ Contact: info@finbourne.com
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+
21
+ from typing import Any, Dict, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, constr
23
+ from lusid.models.perpetual_property import PerpetualProperty
24
+ from lusid.models.resource_id import ResourceId
25
+
26
+ class PlacementUpdateRequest(BaseModel):
27
+ """
28
+ A request to create or update a Placement. # noqa: E501
29
+ """
30
+ id: ResourceId = Field(...)
31
+ quantity: Union[StrictFloat, StrictInt] = Field(..., description="The quantity of given instrument ordered.")
32
+ properties: Optional[Dict[str, PerpetualProperty]] = Field(None, description="Client-defined properties associated with this placement.")
33
+ counterparty: Optional[StrictStr] = Field(None, description="Optionally specifies the market entity this placement is placed with.")
34
+ execution_system: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="executionSystem", description="Optionally specifies the execution system in use.")
35
+ entry_type: Optional[constr(strict=True, max_length=256, min_length=1)] = Field(None, alias="entryType", description="Optionally specifies the entry type of this placement.")
36
+ __properties = ["id", "quantity", "properties", "counterparty", "executionSystem", "entryType"]
37
+
38
+ class Config:
39
+ """Pydantic configuration"""
40
+ allow_population_by_field_name = True
41
+ validate_assignment = True
42
+
43
+ def to_str(self) -> str:
44
+ """Returns the string representation of the model using alias"""
45
+ return pprint.pformat(self.dict(by_alias=True))
46
+
47
+ def to_json(self) -> str:
48
+ """Returns the JSON representation of the model using alias"""
49
+ return json.dumps(self.to_dict())
50
+
51
+ @classmethod
52
+ def from_json(cls, json_str: str) -> PlacementUpdateRequest:
53
+ """Create an instance of PlacementUpdateRequest from a JSON string"""
54
+ return cls.from_dict(json.loads(json_str))
55
+
56
+ def to_dict(self):
57
+ """Returns the dictionary representation of the model using alias"""
58
+ _dict = self.dict(by_alias=True,
59
+ exclude={
60
+ },
61
+ exclude_none=True)
62
+ # override the default output from pydantic by calling `to_dict()` of id
63
+ if self.id:
64
+ _dict['id'] = self.id.to_dict()
65
+ # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
66
+ _field_dict = {}
67
+ if self.properties:
68
+ for _key in self.properties:
69
+ if self.properties[_key]:
70
+ _field_dict[_key] = self.properties[_key].to_dict()
71
+ _dict['properties'] = _field_dict
72
+ # set to None if properties (nullable) is None
73
+ # and __fields_set__ contains the field
74
+ if self.properties is None and "properties" in self.__fields_set__:
75
+ _dict['properties'] = None
76
+
77
+ # set to None if counterparty (nullable) is None
78
+ # and __fields_set__ contains the field
79
+ if self.counterparty is None and "counterparty" in self.__fields_set__:
80
+ _dict['counterparty'] = None
81
+
82
+ # set to None if execution_system (nullable) is None
83
+ # and __fields_set__ contains the field
84
+ if self.execution_system is None and "execution_system" in self.__fields_set__:
85
+ _dict['executionSystem'] = None
86
+
87
+ # set to None if entry_type (nullable) is None
88
+ # and __fields_set__ contains the field
89
+ if self.entry_type is None and "entry_type" in self.__fields_set__:
90
+ _dict['entryType'] = None
91
+
92
+ return _dict
93
+
94
+ @classmethod
95
+ def from_dict(cls, obj: dict) -> PlacementUpdateRequest:
96
+ """Create an instance of PlacementUpdateRequest from a dict"""
97
+ if obj is None:
98
+ return None
99
+
100
+ if not isinstance(obj, dict):
101
+ return PlacementUpdateRequest.parse_obj(obj)
102
+
103
+ _obj = PlacementUpdateRequest.parse_obj({
104
+ "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
105
+ "quantity": obj.get("quantity"),
106
+ "properties": dict(
107
+ (_k, PerpetualProperty.from_dict(_v))
108
+ for _k, _v in obj.get("properties").items()
109
+ )
110
+ if obj.get("properties") is not None
111
+ else None,
112
+ "counterparty": obj.get("counterparty"),
113
+ "execution_system": obj.get("executionSystem"),
114
+ "entry_type": obj.get("entryType")
115
+ })
116
+ return _obj
lusid/models/portfolio.py CHANGED
@@ -46,7 +46,7 @@ class Portfolio(BaseModel):
46
46
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The requested portfolio properties. These will be from the 'Portfolio' domain.")
47
47
  relationships: Optional[conlist(Relationship)] = Field(None, description="A set of relationships associated to the portfolio.")
48
48
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The instrument scope resolution strategy of this portfolio.")
49
- accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
49
+ accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst, ProRateByUnits, ProRateByCost, ProRateByCostPortfolioCurrency")
50
50
  amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
51
51
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
52
52
  cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The scope of the transaction types.")
@@ -68,8 +68,8 @@ class Portfolio(BaseModel):
68
68
  if value is None:
69
69
  return value
70
70
 
71
- if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst'):
72
- raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst')")
71
+ if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency'):
72
+ raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency')")
73
73
  return value
74
74
 
75
75
  class Config:
@@ -37,7 +37,7 @@ class PortfolioDetails(BaseModel):
37
37
  corporate_action_source_id: Optional[ResourceId] = Field(None, alias="corporateActionSourceId")
38
38
  sub_holding_keys: Optional[conlist(StrictStr)] = Field(None, alias="subHoldingKeys")
39
39
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The resolution strategy used to resolve instruments of transactions/holdings upserted to the transaction portfolio.")
40
- accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
40
+ accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst, ProRateByUnits, ProRateByCost, ProRateByCostPortfolioCurrency")
41
41
  amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
42
42
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
43
43
  cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The option when the Cash Gain Loss to be calulated, TransactionDate/SettlementDate. Defaults to SettlementDate.")
@@ -53,8 +53,8 @@ class PortfolioDetails(BaseModel):
53
53
  if value is None:
54
54
  return value
55
55
 
56
- if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst'):
57
- raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst')")
56
+ if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency'):
57
+ raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency')")
58
58
  return value
59
59
 
60
60
  class Config:
@@ -45,7 +45,7 @@ class PortfolioWithoutHref(BaseModel):
45
45
  properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The requested portfolio properties. These will be from the 'Portfolio' domain.")
46
46
  relationships: Optional[conlist(Relationship)] = Field(None, description="A set of relationships associated to the portfolio.")
47
47
  instrument_scopes: Optional[conlist(StrictStr)] = Field(None, alias="instrumentScopes", description="The instrument scope resolution strategy of this portfolio.")
48
- accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst")
48
+ accounting_method: Optional[StrictStr] = Field(None, alias="accountingMethod", description=". The available values are: Default, AverageCost, FirstInFirstOut, LastInFirstOut, HighestCostFirst, LowestCostFirst, ProRateByUnits, ProRateByCost, ProRateByCostPortfolioCurrency")
49
49
  amortisation_method: Optional[StrictStr] = Field(None, alias="amortisationMethod", description="The amortisation method used by the portfolio for the calculation. The available values are: NoAmortisation, StraightLine, EffectiveYield, StraightLineSettlementDate, EffectiveYieldSettlementDate")
50
50
  transaction_type_scope: Optional[StrictStr] = Field(None, alias="transactionTypeScope", description="The scope of the transaction types.")
51
51
  cash_gain_loss_calculation_date: Optional[StrictStr] = Field(None, alias="cashGainLossCalculationDate", description="The scope of the transaction types.")
@@ -67,8 +67,8 @@ class PortfolioWithoutHref(BaseModel):
67
67
  if value is None:
68
68
  return value
69
69
 
70
- if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst'):
71
- raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst')")
70
+ if value not in ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency'):
71
+ raise ValueError("must be one of enum values ('Default', 'AverageCost', 'FirstInFirstOut', 'LastInFirstOut', 'HighestCostFirst', 'LowestCostFirst', 'ProRateByUnits', 'ProRateByCost', 'ProRateByCostPortfolioCurrency')")
72
72
  return value
73
73
 
74
74
  class Config:
@@ -0,0 +1,69 @@
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
23
+
24
+ class PreTradeConfiguration(BaseModel):
25
+ """
26
+ Specification object for the pre trade configuration parameters of a compliance run # noqa: E501
27
+ """
28
+ include_entity_types: constr(strict=True, min_length=1) = Field(..., alias="includeEntityTypes", description="Controls whether Orders and Allocations orders are included in the Portfolio valuation done for this compliance run. Valid values are: None (to account for Transactions only), Allocations (to include Allocations and Transactions) and OrdersAndAllocations (to include Orders, Allocations and Transactions).")
29
+ __properties = ["includeEntityTypes"]
30
+
31
+ class Config:
32
+ """Pydantic configuration"""
33
+ allow_population_by_field_name = True
34
+ validate_assignment = True
35
+
36
+ def to_str(self) -> str:
37
+ """Returns the string representation of the model using alias"""
38
+ return pprint.pformat(self.dict(by_alias=True))
39
+
40
+ def to_json(self) -> str:
41
+ """Returns the JSON representation of the model using alias"""
42
+ return json.dumps(self.to_dict())
43
+
44
+ @classmethod
45
+ def from_json(cls, json_str: str) -> PreTradeConfiguration:
46
+ """Create an instance of PreTradeConfiguration from a JSON string"""
47
+ return cls.from_dict(json.loads(json_str))
48
+
49
+ def to_dict(self):
50
+ """Returns the dictionary representation of the model using alias"""
51
+ _dict = self.dict(by_alias=True,
52
+ exclude={
53
+ },
54
+ exclude_none=True)
55
+ return _dict
56
+
57
+ @classmethod
58
+ def from_dict(cls, obj: dict) -> PreTradeConfiguration:
59
+ """Create an instance of PreTradeConfiguration from a dict"""
60
+ if obj is None:
61
+ return None
62
+
63
+ if not isinstance(obj, dict):
64
+ return PreTradeConfiguration.parse_obj(obj)
65
+
66
+ _obj = PreTradeConfiguration.parse_obj({
67
+ "include_entity_types": obj.get("includeEntityTypes")
68
+ })
69
+ return _obj
@@ -0,0 +1,79 @@
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
23
+ from lusid.models.fund_previous_nav import FundPreviousNAV
24
+ from lusid.models.unitisation_data import UnitisationData
25
+
26
+ class PreviousFundValuationPointData(BaseModel):
27
+ """
28
+ The data for a Fund at the previous valuation point. # noqa: E501
29
+ """
30
+ nav: FundPreviousNAV = Field(...)
31
+ unitisation: Optional[UnitisationData] = None
32
+ __properties = ["nav", "unitisation"]
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) -> PreviousFundValuationPointData:
49
+ """Create an instance of PreviousFundValuationPointData 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 nav
59
+ if self.nav:
60
+ _dict['nav'] = self.nav.to_dict()
61
+ # override the default output from pydantic by calling `to_dict()` of unitisation
62
+ if self.unitisation:
63
+ _dict['unitisation'] = self.unitisation.to_dict()
64
+ return _dict
65
+
66
+ @classmethod
67
+ def from_dict(cls, obj: dict) -> PreviousFundValuationPointData:
68
+ """Create an instance of PreviousFundValuationPointData from a dict"""
69
+ if obj is None:
70
+ return None
71
+
72
+ if not isinstance(obj, dict):
73
+ return PreviousFundValuationPointData.parse_obj(obj)
74
+
75
+ _obj = PreviousFundValuationPointData.parse_obj({
76
+ "nav": FundPreviousNAV.from_dict(obj.get("nav")) if obj.get("nav") is not None else None,
77
+ "unitisation": UnitisationData.from_dict(obj.get("unitisation")) if obj.get("unitisation") is not None else None
78
+ })
79
+ return _obj