lusid-sdk 2.1.134__py3-none-any.whl → 2.1.136__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/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.6568\n"\
376
+ "Version of the API: 0.11.6570\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
@@ -306,7 +306,9 @@ from lusid.models.exercise_event import ExerciseEvent
306
306
  from lusid.models.exotic_instrument import ExoticInstrument
307
307
  from lusid.models.expanded_group import ExpandedGroup
308
308
  from lusid.models.expiry_event import ExpiryEvent
309
+ from lusid.models.fee import Fee
309
310
  from lusid.models.fee_accrual import FeeAccrual
311
+ from lusid.models.fee_request import FeeRequest
310
312
  from lusid.models.fee_rule import FeeRule
311
313
  from lusid.models.fee_rule_upsert_request import FeeRuleUpsertRequest
312
314
  from lusid.models.fee_rule_upsert_response import FeeRuleUpsertResponse
@@ -553,6 +555,7 @@ from lusid.models.paged_resource_list_of_data_type_summary import PagedResourceL
553
555
  from lusid.models.paged_resource_list_of_dialect_id import PagedResourceListOfDialectId
554
556
  from lusid.models.paged_resource_list_of_diary_entry import PagedResourceListOfDiaryEntry
555
557
  from lusid.models.paged_resource_list_of_execution import PagedResourceListOfExecution
558
+ from lusid.models.paged_resource_list_of_fee import PagedResourceListOfFee
556
559
  from lusid.models.paged_resource_list_of_fee_type import PagedResourceListOfFeeType
557
560
  from lusid.models.paged_resource_list_of_fund import PagedResourceListOfFund
558
561
  from lusid.models.paged_resource_list_of_general_ledger_profile_response import PagedResourceListOfGeneralLedgerProfileResponse
@@ -1289,7 +1292,9 @@ __all__ = [
1289
1292
  "ExoticInstrument",
1290
1293
  "ExpandedGroup",
1291
1294
  "ExpiryEvent",
1295
+ "Fee",
1292
1296
  "FeeAccrual",
1297
+ "FeeRequest",
1293
1298
  "FeeRule",
1294
1299
  "FeeRuleUpsertRequest",
1295
1300
  "FeeRuleUpsertResponse",
@@ -1536,6 +1541,7 @@ __all__ = [
1536
1541
  "PagedResourceListOfDialectId",
1537
1542
  "PagedResourceListOfDiaryEntry",
1538
1543
  "PagedResourceListOfExecution",
1544
+ "PagedResourceListOfFee",
1539
1545
  "PagedResourceListOfFeeType",
1540
1546
  "PagedResourceListOfFund",
1541
1547
  "PagedResourceListOfGeneralLedgerProfileResponse",
lusid/models/fee.py ADDED
@@ -0,0 +1,217 @@
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
+ from datetime import datetime
21
+ from typing import Any, Dict, List, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr, validator
23
+ from lusid.models.day_month import DayMonth
24
+ from lusid.models.link import Link
25
+ from lusid.models.model_property import ModelProperty
26
+ from lusid.models.resource_id import ResourceId
27
+ from lusid.models.version import Version
28
+
29
+ class Fee(BaseModel):
30
+ """
31
+ Fee
32
+ """
33
+ href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
34
+ fee_code: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="feeCode", description="The code of the Fee.")
35
+ fee_type: ResourceId = Field(..., alias="feeType")
36
+ name: constr(strict=True, max_length=50, min_length=0) = Field(..., description="The name of the Fee.")
37
+ description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Fee.")
38
+ origin: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="The origin or source of the Fee accrual.")
39
+ calculation_base: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, alias="calculationBase", description="The calculation base for the Fee that is calculated using a percentage.")
40
+ accrual_currency: constr(strict=True, max_length=3, min_length=0) = Field(..., alias="accrualCurrency", description="The accrual currency.")
41
+ treatment: constr(strict=True, min_length=1) = Field(..., description="The accrual period of the Fee; 'Monthly' or 'Daily'.")
42
+ total_annual_accrual_amount: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalAnnualAccrualAmount", description="The total accrued amount for the Fee.")
43
+ fee_rate_percentage: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="feeRatePercentage", description="The fee rate percentage.")
44
+ monthly_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="monthlyAccrual", description="The monthly accrual amount.")
45
+ daily_accrual: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="dailyAccrual", description="The daily accrual amount.")
46
+ payable_frequency: constr(strict=True, min_length=1) = Field(..., alias="payableFrequency", description="The payable frequency for the Fee; 'Annually', 'Quarterly' or 'Monthly'.")
47
+ business_day_convention: constr(strict=True, min_length=1) = Field(..., alias="businessDayConvention", description="The business day convention to use for Fee calculations on weekends.")
48
+ start_date: datetime = Field(..., alias="startDate", description="The start date of the Fee.")
49
+ end_date: Optional[datetime] = Field(None, alias="endDate", description="The end date of the Fee.")
50
+ anchor_date: Optional[DayMonth] = Field(None, alias="anchorDate")
51
+ properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The Fee properties. These will be from the 'Fee' domain.")
52
+ version: Optional[Version] = None
53
+ links: Optional[conlist(Link)] = None
54
+ __properties = ["href", "feeCode", "feeType", "name", "description", "origin", "calculationBase", "accrualCurrency", "treatment", "totalAnnualAccrualAmount", "feeRatePercentage", "monthlyAccrual", "dailyAccrual", "payableFrequency", "businessDayConvention", "startDate", "endDate", "anchorDate", "properties", "version", "links"]
55
+
56
+ @validator('fee_code')
57
+ def fee_code_validate_regular_expression(cls, value):
58
+ """Validates the regular expression"""
59
+ if value is None:
60
+ return value
61
+
62
+ if not re.match(r"^[a-zA-Z0-9\-_]+$", value):
63
+ raise ValueError(r"must validate the regular expression /^[a-zA-Z0-9\-_]+$/")
64
+ return value
65
+
66
+ @validator('description')
67
+ def description_validate_regular_expression(cls, value):
68
+ """Validates the regular expression"""
69
+ if value is None:
70
+ return value
71
+
72
+ if not re.match(r"^[\s\S]*$", value):
73
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
74
+ return value
75
+
76
+ class Config:
77
+ """Pydantic configuration"""
78
+ allow_population_by_field_name = True
79
+ validate_assignment = True
80
+
81
+ def to_str(self) -> str:
82
+ """Returns the string representation of the model using alias"""
83
+ return pprint.pformat(self.dict(by_alias=True))
84
+
85
+ def to_json(self) -> str:
86
+ """Returns the JSON representation of the model using alias"""
87
+ return json.dumps(self.to_dict())
88
+
89
+ @classmethod
90
+ def from_json(cls, json_str: str) -> Fee:
91
+ """Create an instance of Fee from a JSON string"""
92
+ return cls.from_dict(json.loads(json_str))
93
+
94
+ def to_dict(self):
95
+ """Returns the dictionary representation of the model using alias"""
96
+ _dict = self.dict(by_alias=True,
97
+ exclude={
98
+ },
99
+ exclude_none=True)
100
+ # override the default output from pydantic by calling `to_dict()` of fee_type
101
+ if self.fee_type:
102
+ _dict['feeType'] = self.fee_type.to_dict()
103
+ # override the default output from pydantic by calling `to_dict()` of anchor_date
104
+ if self.anchor_date:
105
+ _dict['anchorDate'] = self.anchor_date.to_dict()
106
+ # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
107
+ _field_dict = {}
108
+ if self.properties:
109
+ for _key in self.properties:
110
+ if self.properties[_key]:
111
+ _field_dict[_key] = self.properties[_key].to_dict()
112
+ _dict['properties'] = _field_dict
113
+ # override the default output from pydantic by calling `to_dict()` of version
114
+ if self.version:
115
+ _dict['version'] = self.version.to_dict()
116
+ # override the default output from pydantic by calling `to_dict()` of each item in links (list)
117
+ _items = []
118
+ if self.links:
119
+ for _item in self.links:
120
+ if _item:
121
+ _items.append(_item.to_dict())
122
+ _dict['links'] = _items
123
+ # set to None if href (nullable) is None
124
+ # and __fields_set__ contains the field
125
+ if self.href is None and "href" in self.__fields_set__:
126
+ _dict['href'] = None
127
+
128
+ # set to None if fee_code (nullable) is None
129
+ # and __fields_set__ contains the field
130
+ if self.fee_code is None and "fee_code" in self.__fields_set__:
131
+ _dict['feeCode'] = None
132
+
133
+ # set to None if description (nullable) is None
134
+ # and __fields_set__ contains the field
135
+ if self.description is None and "description" in self.__fields_set__:
136
+ _dict['description'] = None
137
+
138
+ # set to None if origin (nullable) is None
139
+ # and __fields_set__ contains the field
140
+ if self.origin is None and "origin" in self.__fields_set__:
141
+ _dict['origin'] = None
142
+
143
+ # set to None if calculation_base (nullable) is None
144
+ # and __fields_set__ contains the field
145
+ if self.calculation_base is None and "calculation_base" in self.__fields_set__:
146
+ _dict['calculationBase'] = None
147
+
148
+ # set to None if total_annual_accrual_amount (nullable) is None
149
+ # and __fields_set__ contains the field
150
+ if self.total_annual_accrual_amount is None and "total_annual_accrual_amount" in self.__fields_set__:
151
+ _dict['totalAnnualAccrualAmount'] = None
152
+
153
+ # set to None if fee_rate_percentage (nullable) is None
154
+ # and __fields_set__ contains the field
155
+ if self.fee_rate_percentage is None and "fee_rate_percentage" in self.__fields_set__:
156
+ _dict['feeRatePercentage'] = None
157
+
158
+ # set to None if monthly_accrual (nullable) is None
159
+ # and __fields_set__ contains the field
160
+ if self.monthly_accrual is None and "monthly_accrual" in self.__fields_set__:
161
+ _dict['monthlyAccrual'] = None
162
+
163
+ # set to None if daily_accrual (nullable) is None
164
+ # and __fields_set__ contains the field
165
+ if self.daily_accrual is None and "daily_accrual" in self.__fields_set__:
166
+ _dict['dailyAccrual'] = None
167
+
168
+ # set to None if properties (nullable) is None
169
+ # and __fields_set__ contains the field
170
+ if self.properties is None and "properties" in self.__fields_set__:
171
+ _dict['properties'] = None
172
+
173
+ # set to None if links (nullable) is None
174
+ # and __fields_set__ contains the field
175
+ if self.links is None and "links" in self.__fields_set__:
176
+ _dict['links'] = None
177
+
178
+ return _dict
179
+
180
+ @classmethod
181
+ def from_dict(cls, obj: dict) -> Fee:
182
+ """Create an instance of Fee from a dict"""
183
+ if obj is None:
184
+ return None
185
+
186
+ if not isinstance(obj, dict):
187
+ return Fee.parse_obj(obj)
188
+
189
+ _obj = Fee.parse_obj({
190
+ "href": obj.get("href"),
191
+ "fee_code": obj.get("feeCode"),
192
+ "fee_type": ResourceId.from_dict(obj.get("feeType")) if obj.get("feeType") is not None else None,
193
+ "name": obj.get("name"),
194
+ "description": obj.get("description"),
195
+ "origin": obj.get("origin"),
196
+ "calculation_base": obj.get("calculationBase"),
197
+ "accrual_currency": obj.get("accrualCurrency"),
198
+ "treatment": obj.get("treatment"),
199
+ "total_annual_accrual_amount": obj.get("totalAnnualAccrualAmount"),
200
+ "fee_rate_percentage": obj.get("feeRatePercentage"),
201
+ "monthly_accrual": obj.get("monthlyAccrual"),
202
+ "daily_accrual": obj.get("dailyAccrual"),
203
+ "payable_frequency": obj.get("payableFrequency"),
204
+ "business_day_convention": obj.get("businessDayConvention"),
205
+ "start_date": obj.get("startDate"),
206
+ "end_date": obj.get("endDate"),
207
+ "anchor_date": DayMonth.from_dict(obj.get("anchorDate")) if obj.get("anchorDate") is not None else None,
208
+ "properties": dict(
209
+ (_k, ModelProperty.from_dict(_v))
210
+ for _k, _v in obj.get("properties").items()
211
+ )
212
+ if obj.get("properties") is not None
213
+ else None,
214
+ "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
215
+ "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
216
+ })
217
+ return _obj
@@ -0,0 +1,163 @@
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
+ from datetime import datetime
21
+ from typing import Any, Dict, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, constr, validator
23
+ from lusid.models.day_month import DayMonth
24
+ from lusid.models.model_property import ModelProperty
25
+ from lusid.models.resource_id import ResourceId
26
+
27
+ class FeeRequest(BaseModel):
28
+ """
29
+ FeeRequest
30
+ """
31
+ fee_type: ResourceId = Field(..., alias="feeType")
32
+ name: constr(strict=True, max_length=256, min_length=1) = Field(..., description="The name of the Fee.")
33
+ description: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, description="A description for the Fee.")
34
+ origin: Optional[constr(strict=True, max_length=512, min_length=1)] = Field(None, description="The origin or source of the Fee accrual.")
35
+ calculation_base: Optional[constr(strict=True, max_length=1024, min_length=0)] = Field(None, alias="calculationBase", description="The calculation base for the Fee that is calculated using a percentage.")
36
+ accrual_currency: constr(strict=True, max_length=3, min_length=0) = Field(..., alias="accrualCurrency", description="The accrual currency.")
37
+ treatment: constr(strict=True, min_length=1) = Field(..., description="The accrual period of the Fee; 'Monthly' or 'Daily'.")
38
+ total_annual_accrual_amount: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="totalAnnualAccrualAmount", description="The total accrued amount for the Fee.")
39
+ fee_rate_percentage: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="feeRatePercentage", description="The fee rate percentage.")
40
+ payable_frequency: constr(strict=True, min_length=1) = Field(..., alias="payableFrequency", description="The payable frequency for the Fee; 'Annually', 'Quarterly' or 'Monthly'.")
41
+ business_day_convention: constr(strict=True, min_length=1) = Field(..., alias="businessDayConvention", description="The business day convention to use for Fee calculations on weekends.")
42
+ start_date: datetime = Field(..., alias="startDate", description="The start date of the Fee.")
43
+ end_date: Optional[datetime] = Field(None, alias="endDate", description="The end date of the Fee.")
44
+ anchor_date: Optional[DayMonth] = Field(None, alias="anchorDate")
45
+ properties: Optional[Dict[str, ModelProperty]] = Field(None, description="The Fee properties. These will be from the 'Fee' domain.")
46
+ __properties = ["feeType", "name", "description", "origin", "calculationBase", "accrualCurrency", "treatment", "totalAnnualAccrualAmount", "feeRatePercentage", "payableFrequency", "businessDayConvention", "startDate", "endDate", "anchorDate", "properties"]
47
+
48
+ @validator('description')
49
+ def description_validate_regular_expression(cls, value):
50
+ """Validates the regular expression"""
51
+ if value is None:
52
+ return value
53
+
54
+ if not re.match(r"^[\s\S]*$", value):
55
+ raise ValueError(r"must validate the regular expression /^[\s\S]*$/")
56
+ return value
57
+
58
+ class Config:
59
+ """Pydantic configuration"""
60
+ allow_population_by_field_name = True
61
+ validate_assignment = True
62
+
63
+ def to_str(self) -> str:
64
+ """Returns the string representation of the model using alias"""
65
+ return pprint.pformat(self.dict(by_alias=True))
66
+
67
+ def to_json(self) -> str:
68
+ """Returns the JSON representation of the model using alias"""
69
+ return json.dumps(self.to_dict())
70
+
71
+ @classmethod
72
+ def from_json(cls, json_str: str) -> FeeRequest:
73
+ """Create an instance of FeeRequest from a JSON string"""
74
+ return cls.from_dict(json.loads(json_str))
75
+
76
+ def to_dict(self):
77
+ """Returns the dictionary representation of the model using alias"""
78
+ _dict = self.dict(by_alias=True,
79
+ exclude={
80
+ },
81
+ exclude_none=True)
82
+ # override the default output from pydantic by calling `to_dict()` of fee_type
83
+ if self.fee_type:
84
+ _dict['feeType'] = self.fee_type.to_dict()
85
+ # override the default output from pydantic by calling `to_dict()` of anchor_date
86
+ if self.anchor_date:
87
+ _dict['anchorDate'] = self.anchor_date.to_dict()
88
+ # override the default output from pydantic by calling `to_dict()` of each value in properties (dict)
89
+ _field_dict = {}
90
+ if self.properties:
91
+ for _key in self.properties:
92
+ if self.properties[_key]:
93
+ _field_dict[_key] = self.properties[_key].to_dict()
94
+ _dict['properties'] = _field_dict
95
+ # set to None if description (nullable) is None
96
+ # and __fields_set__ contains the field
97
+ if self.description is None and "description" in self.__fields_set__:
98
+ _dict['description'] = None
99
+
100
+ # set to None if origin (nullable) is None
101
+ # and __fields_set__ contains the field
102
+ if self.origin is None and "origin" in self.__fields_set__:
103
+ _dict['origin'] = None
104
+
105
+ # set to None if calculation_base (nullable) is None
106
+ # and __fields_set__ contains the field
107
+ if self.calculation_base is None and "calculation_base" in self.__fields_set__:
108
+ _dict['calculationBase'] = None
109
+
110
+ # set to None if total_annual_accrual_amount (nullable) is None
111
+ # and __fields_set__ contains the field
112
+ if self.total_annual_accrual_amount is None and "total_annual_accrual_amount" in self.__fields_set__:
113
+ _dict['totalAnnualAccrualAmount'] = None
114
+
115
+ # set to None if fee_rate_percentage (nullable) is None
116
+ # and __fields_set__ contains the field
117
+ if self.fee_rate_percentage is None and "fee_rate_percentage" in self.__fields_set__:
118
+ _dict['feeRatePercentage'] = None
119
+
120
+ # set to None if end_date (nullable) is None
121
+ # and __fields_set__ contains the field
122
+ if self.end_date is None and "end_date" in self.__fields_set__:
123
+ _dict['endDate'] = None
124
+
125
+ # set to None if properties (nullable) is None
126
+ # and __fields_set__ contains the field
127
+ if self.properties is None and "properties" in self.__fields_set__:
128
+ _dict['properties'] = None
129
+
130
+ return _dict
131
+
132
+ @classmethod
133
+ def from_dict(cls, obj: dict) -> FeeRequest:
134
+ """Create an instance of FeeRequest from a dict"""
135
+ if obj is None:
136
+ return None
137
+
138
+ if not isinstance(obj, dict):
139
+ return FeeRequest.parse_obj(obj)
140
+
141
+ _obj = FeeRequest.parse_obj({
142
+ "fee_type": ResourceId.from_dict(obj.get("feeType")) if obj.get("feeType") is not None else None,
143
+ "name": obj.get("name"),
144
+ "description": obj.get("description"),
145
+ "origin": obj.get("origin"),
146
+ "calculation_base": obj.get("calculationBase"),
147
+ "accrual_currency": obj.get("accrualCurrency"),
148
+ "treatment": obj.get("treatment"),
149
+ "total_annual_accrual_amount": obj.get("totalAnnualAccrualAmount"),
150
+ "fee_rate_percentage": obj.get("feeRatePercentage"),
151
+ "payable_frequency": obj.get("payableFrequency"),
152
+ "business_day_convention": obj.get("businessDayConvention"),
153
+ "start_date": obj.get("startDate"),
154
+ "end_date": obj.get("endDate"),
155
+ "anchor_date": DayMonth.from_dict(obj.get("anchorDate")) if obj.get("anchorDate") is not None else None,
156
+ "properties": dict(
157
+ (_k, ModelProperty.from_dict(_v))
158
+ for _k, _v in obj.get("properties").items()
159
+ )
160
+ if obj.get("properties") is not None
161
+ else None
162
+ })
163
+ return _obj
@@ -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.fee import Fee
24
+ from lusid.models.link import Link
25
+
26
+ class PagedResourceListOfFee(BaseModel):
27
+ """
28
+ PagedResourceListOfFee
29
+ """
30
+ next_page: Optional[StrictStr] = Field(None, alias="nextPage")
31
+ previous_page: Optional[StrictStr] = Field(None, alias="previousPage")
32
+ values: conlist(Fee) = 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) -> PagedResourceListOfFee:
52
+ """Create an instance of PagedResourceListOfFee 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) -> PagedResourceListOfFee:
99
+ """Create an instance of PagedResourceListOfFee from a dict"""
100
+ if obj is None:
101
+ return None
102
+
103
+ if not isinstance(obj, dict):
104
+ return PagedResourceListOfFee.parse_obj(obj)
105
+
106
+ _obj = PagedResourceListOfFee.parse_obj({
107
+ "next_page": obj.get("nextPage"),
108
+ "previous_page": obj.get("previousPage"),
109
+ "values": [Fee.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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.134
3
+ Version: 2.1.136
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.6568
33
- - Package version: 2.1.134
32
+ - API version: 0.11.6570
33
+ - Package version: 2.1.136
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
 
@@ -404,13 +404,18 @@ Class | Method | HTTP request | Description
404
404
  *FeeTypesApi* | [**list_fee_types**](docs/FeeTypesApi.md#list_fee_types) | **GET** /api/feetypes | [EXPERIMENTAL] ListFeeTypes: List FeeTypes
405
405
  *FeeTypesApi* | [**update_fee_type**](docs/FeeTypesApi.md#update_fee_type) | **PUT** /api/feetypes/{scope}/{code} | [EXPERIMENTAL] UpdateFeeType: Update a FeeType.
406
406
  *FundsApi* | [**accept_estimate_point**](docs/FundsApi.md#accept_estimate_point) | **POST** /api/funds/{scope}/{code}/valuationpoints/$acceptestimate | [EXPERIMENTAL] AcceptEstimatePoint: Accepts an Estimate Valuation Point.
407
+ *FundsApi* | [**create_fee**](docs/FundsApi.md#create_fee) | **POST** /api/funds/{scope}/{code}/fee/{feeCode} | [EXPERIMENTAL] CreateFee: Create a Fee.
407
408
  *FundsApi* | [**create_fund**](docs/FundsApi.md#create_fund) | **POST** /api/funds/{scope} | [EXPERIMENTAL] CreateFund: Create a Fund.
409
+ *FundsApi* | [**delete_fee**](docs/FundsApi.md#delete_fee) | **DELETE** /api/funds/{scope}/{code}/fee/{feeCode} | [EXPERIMENTAL] DeleteFee: Delete a Fee.
408
410
  *FundsApi* | [**delete_fund**](docs/FundsApi.md#delete_fund) | **DELETE** /api/funds/{scope}/{code} | [EXPERIMENTAL] DeleteFund: Delete a Fund.
409
411
  *FundsApi* | [**delete_valuation_point**](docs/FundsApi.md#delete_valuation_point) | **DELETE** /api/funds/{scope}/{code}/valuationpoints/{diaryEntryCode} | [EXPERIMENTAL] DeleteValuationPoint: Delete a Valuation Point.
410
412
  *FundsApi* | [**finalise_candidate_valuation**](docs/FundsApi.md#finalise_candidate_valuation) | **POST** /api/funds/{scope}/{code}/valuationpoints/$finalisecandidate | [EXPERIMENTAL] FinaliseCandidateValuation: Finalise Candidate.
413
+ *FundsApi* | [**get_fee**](docs/FundsApi.md#get_fee) | **GET** /api/funds/{scope}/{code}/fee/{feeCode} | [EXPERIMENTAL] GetFee: Get a Fee for a specified Fund.
411
414
  *FundsApi* | [**get_fund**](docs/FundsApi.md#get_fund) | **GET** /api/funds/{scope}/{code} | [EXPERIMENTAL] GetFund: Get a Fund.
412
415
  *FundsApi* | [**get_valuation_point_data**](docs/FundsApi.md#get_valuation_point_data) | **POST** /api/funds/{scope}/{code}/valuationpoints | [EXPERIMENTAL] GetValuationPointData: Get Valuation Point Data for a Fund.
416
+ *FundsApi* | [**list_fees**](docs/FundsApi.md#list_fees) | **GET** /api/funds/{scope}/{code}/fee | [EXPERIMENTAL] ListFees: List Fees for a specified Fund.
413
417
  *FundsApi* | [**list_funds**](docs/FundsApi.md#list_funds) | **GET** /api/funds | [EXPERIMENTAL] ListFunds: List Funds.
418
+ *FundsApi* | [**patch_fee**](docs/FundsApi.md#patch_fee) | **PATCH** /api/funds/{scope}/{code}/fee/{feeCode} | [EXPERIMENTAL] PatchFee: Patch Fee.
414
419
  *FundsApi* | [**set_share_class_instruments**](docs/FundsApi.md#set_share_class_instruments) | **PUT** /api/funds/{scope}/{code}/shareclasses | [EXPERIMENTAL] SetShareClassInstruments: Set the ShareClass Instruments on a fund.
415
420
  *FundsApi* | [**upsert_fund_properties**](docs/FundsApi.md#upsert_fund_properties) | **POST** /api/funds/{scope}/{code}/properties/$upsert | [EXPERIMENTAL] UpsertFundProperties: Upsert Fund properties.
416
421
  *FundsApi* | [**upsert_valuation_point**](docs/FundsApi.md#upsert_valuation_point) | **POST** /api/funds/{scope}/{code}/valuationpoints/$upsert | [EXPERIMENTAL] UpsertValuationPoint: Upsert Valuation Point.
@@ -1031,7 +1036,9 @@ Class | Method | HTTP request | Description
1031
1036
  - [ExoticInstrument](docs/ExoticInstrument.md)
1032
1037
  - [ExpandedGroup](docs/ExpandedGroup.md)
1033
1038
  - [ExpiryEvent](docs/ExpiryEvent.md)
1039
+ - [Fee](docs/Fee.md)
1034
1040
  - [FeeAccrual](docs/FeeAccrual.md)
1041
+ - [FeeRequest](docs/FeeRequest.md)
1035
1042
  - [FeeRule](docs/FeeRule.md)
1036
1043
  - [FeeRuleUpsertRequest](docs/FeeRuleUpsertRequest.md)
1037
1044
  - [FeeRuleUpsertResponse](docs/FeeRuleUpsertResponse.md)
@@ -1278,6 +1285,7 @@ Class | Method | HTTP request | Description
1278
1285
  - [PagedResourceListOfDialectId](docs/PagedResourceListOfDialectId.md)
1279
1286
  - [PagedResourceListOfDiaryEntry](docs/PagedResourceListOfDiaryEntry.md)
1280
1287
  - [PagedResourceListOfExecution](docs/PagedResourceListOfExecution.md)
1288
+ - [PagedResourceListOfFee](docs/PagedResourceListOfFee.md)
1281
1289
  - [PagedResourceListOfFeeType](docs/PagedResourceListOfFeeType.md)
1282
1290
  - [PagedResourceListOfFund](docs/PagedResourceListOfFund.md)
1283
1291
  - [PagedResourceListOfGeneralLedgerProfileResponse](docs/PagedResourceListOfGeneralLedgerProfileResponse.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=OUMDm6jTJP3vyRUTx2XJ20fV4p0gx2wtqH8YX1pWSaQ,109263
1
+ lusid/__init__.py,sha256=rK8ckyZVmub6acO1Fbnmv5hheodAPy-bBIKAMtCkX3s,109478
2
2
  lusid/api/__init__.py,sha256=PFpT-ADthWd08-JqKOqQTbVW6cz9wdP_us6bg3aBFfs,5555
3
3
  lusid/api/abor_api.py,sha256=AvgsHuWE7qRSYJhKveBE2htSjHpqqS0VNJrysAfwME0,159655
4
4
  lusid/api/abor_configuration_api.py,sha256=G2bKPtMYOZ2GhUrg-nPJtCa9XIZdZYK7oafcbJWDMP8,64033
@@ -25,7 +25,7 @@ lusid/api/derived_transaction_portfolios_api.py,sha256=cKv5mKNmTiuHzWGwupwcSBibj
25
25
  lusid/api/entities_api.py,sha256=kPVPA2CR-mXWhSHLga-l3R4fyhx69S7vfU47te42wng,21372
26
26
  lusid/api/executions_api.py,sha256=84zjdPPCPB-aBjM5ntqTcEJa_kSqBSqdtqh47b0a_UY,44435
27
27
  lusid/api/fee_types_api.py,sha256=conpVPkoLCcUY9f817882MTqrZ_uFlMuoPFo1swqTp4,49609
28
- lusid/api/funds_api.py,sha256=s2xo4yrQeNs06nvCeDCedD7T2aB-XW8nO-ftAPG4kEk,122388
28
+ lusid/api/funds_api.py,sha256=Jf6wpXkBeT2F0pJkteMV-os_4IBuOKrjN6SvS-ZpMtw,184135
29
29
  lusid/api/instrument_event_types_api.py,sha256=shwiW-AatQw-mEwD-TS1d8M2AtV62gqvfF3utyIqe0Y,81546
30
30
  lusid/api/instrument_events_api.py,sha256=Z9-BGnpe7OTP-SfWmB2KMtPMdl1m1W3IBGZMNZmdUIM,58538
31
31
  lusid/api/instruments_api.py,sha256=cP5f4NMTDtjiyqODwOV0Dc8_miaE3PxnIre36d2wT9I,281333
@@ -67,7 +67,7 @@ lusid/api/transaction_portfolios_api.py,sha256=3HznPMjDx_ohFwiJN8pii2aS8NMeKu23K
67
67
  lusid/api/translation_api.py,sha256=xTAaKEW96JTDIZBXCjxSguCa7Gz4oVd5jdObUE2egwo,20092
68
68
  lusid/api_client.py,sha256=dF6l9RAsdxdQjf6Qn4ny6LB-QXlJmsscWiozCvyyBFA,30709
69
69
  lusid/api_response.py,sha256=6-gnhty6lu8MMAERt3_kTVD7UxQgWFfcjgpcq6iN5IU,855
70
- lusid/configuration.py,sha256=DBcd1zHji6CcXLDfylCGwKhT9THqf1gKqLw2uKu7SDI,14404
70
+ lusid/configuration.py,sha256=iWJMHrnehhAQAh4l1decvzhr13jrxOHwWvhBqNIvgB0,14404
71
71
  lusid/exceptions.py,sha256=HIQwgmQrszLlcVCLaqex8dO0laVuejUyOMz7U2ZWJ6s,5326
72
72
  lusid/extensions/__init__.py,sha256=DeUuQP7yTcklJH7LT-bw9wQhKEggcs1KwQbPbFcOlhw,560
73
73
  lusid/extensions/api_client.py,sha256=Ob06urm4Em3MLzgP_geyeeGsPCkU225msW_1kpIeABM,30567
@@ -80,7 +80,7 @@ lusid/extensions/rest.py,sha256=tjVCu-cRrYcjp-ttB975vebPKtBNyBWaeoAdO3QXG2I,1269
80
80
  lusid/extensions/retry.py,sha256=orBJ1uF1iT1IncjWX1iGHVqsCgTh0SBe9rtiV_sPnwk,11564
81
81
  lusid/extensions/socket_keep_alive.py,sha256=NGlqsv-E25IjJOLGZhXZY6kUdx51nEF8qCQyVdzayRk,1653
82
82
  lusid/extensions/tcp_keep_alive_connector.py,sha256=zaGtUsygRsxB1_4B3x39K3ILwztdhMLDv5bFZV7zmGE,3877
83
- lusid/models/__init__.py,sha256=fG_tzzqK7TYJOBAPOasKNB-0UQPyNG2wkmhuI9cCdz4,102751
83
+ lusid/models/__init__.py,sha256=erQP0sFX1StH12QQMNti3Cnnh7psXSsxwRHjqm0erdQ,102966
84
84
  lusid/models/a2_b_breakdown.py,sha256=Txi12EIQw3mH6NM-25QkOnHSQc3BVAWrP7yl9bZswSY,2947
85
85
  lusid/models/a2_b_category.py,sha256=k6NPAACi0CUjKyhdQac4obQSrPmp2PXD6lkAtCnyEFM,2725
86
86
  lusid/models/a2_b_data_record.py,sha256=zKGS2P4fzNpzdcGJiSIpkY4P3d_jAcawYfyuPCDeQgk,9737
@@ -373,7 +373,9 @@ lusid/models/exercise_event.py,sha256=eVFMJjxkjz2bNwoxzqpmfvoHOyQn1RASPP_IzZx6cX
373
373
  lusid/models/exotic_instrument.py,sha256=Nfv3cttH2eWGX_aeU6zxmLD5hsNnWC6yBSFeFS6sr80,5705
374
374
  lusid/models/expanded_group.py,sha256=e1fIiusdlI_VtjJlF4g5O_yg6A_5VDOg2LaW94CUyJU,5931
375
375
  lusid/models/expiry_event.py,sha256=u7I-6ehFQwqurZHfP9sCC9lCqtMT_wwqRxxMRPy_dEk,4597
376
+ lusid/models/fee.py,sha256=0FrDmlGTv1sSz5p5AJct5G4ehew-Y2HVk9h0_a8sZXs,10876
376
377
  lusid/models/fee_accrual.py,sha256=I9KdhXDYIS7xyCoQqTRMfSabBPa4EF32Mug3BfOYzbA,2694
378
+ lusid/models/fee_request.py,sha256=l0kmHNbdhoFvB-v8brTNWgbGLoT9P6UFHAylupZWXow,7999
377
379
  lusid/models/fee_rule.py,sha256=Ez0GUE-1FlzEO8VF1IbH3p2I6gjMaQ6arWzo3VCyi5Q,6070
378
380
  lusid/models/fee_rule_upsert_request.py,sha256=0s31dKcYP1kUfOdeuwqbCTxNL6VQ42ryi_QPzayIrXw,6166
379
381
  lusid/models/fee_rule_upsert_response.py,sha256=PH0YLPebZM42YRxgoUXYoP6aDdMuDnw7wBAU_VYCwuE,3144
@@ -620,6 +622,7 @@ lusid/models/paged_resource_list_of_data_type_summary.py,sha256=-fLxEiA73QtALNvb
620
622
  lusid/models/paged_resource_list_of_dialect_id.py,sha256=md85gm76lTsrykPaFBOo2ACJhreJKV84Ttr7dsWXxlw,4083
621
623
  lusid/models/paged_resource_list_of_diary_entry.py,sha256=XM1vKK1RxontjoP9tLTtgvDLx8txL0TZ8Mf495oodRs,4095
622
624
  lusid/models/paged_resource_list_of_execution.py,sha256=E8mIRvN9J_CWGEQ6RewpwF2T41_hFeeN8YWEkrvZ7t4,4082
625
+ lusid/models/paged_resource_list_of_fee.py,sha256=9eJ_1fobwhQyN00e1qZ87RmvOLs9k8n433UCdlmCwio,4010
623
626
  lusid/models/paged_resource_list_of_fee_type.py,sha256=9BTPNegQaavqo8C-nlL8K7EQIpYfQOYaFdL8mk1Kz90,4059
624
627
  lusid/models/paged_resource_list_of_fund.py,sha256=pZrs0K-CphAEhxA41XEoFSar1LCDd_BHvQ0wI2lTAew,4022
625
628
  lusid/models/paged_resource_list_of_general_ledger_profile_response.py,sha256=GaNFxvSOYjkdfTMm12FSxHO4ZKZTzDkuYHXXO2uCMPY,4313
@@ -1063,6 +1066,6 @@ lusid/models/weighted_instruments.py,sha256=1y_y_vw4-LPsbkQx4FOzWdZc5fJnzhVkf1D3
1063
1066
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1064
1067
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1065
1068
  lusid/rest.py,sha256=TNUzQ3yLNT2L053EdR7R0vNzQh2J3TlYD1T56Dye0W0,10138
1066
- lusid_sdk-2.1.134.dist-info/METADATA,sha256=5Ir6j5A3N-YKKbiO-MlcJB1r2ZIP1DtSgB0omnxO77w,187378
1067
- lusid_sdk-2.1.134.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1068
- lusid_sdk-2.1.134.dist-info/RECORD,,
1069
+ lusid_sdk-2.1.136.dist-info/METADATA,sha256=7lJ6jYCyVhzdLvYIWhmZAqoA3_mhzhWWNc9xci7jSSU,188265
1070
+ lusid_sdk-2.1.136.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1071
+ lusid_sdk-2.1.136.dist-info/RECORD,,