lusid-sdk 2.1.330__py3-none-any.whl → 2.1.334__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
lusid/__init__.py CHANGED
@@ -333,6 +333,7 @@ from lusid.models.data_map_key import DataMapKey
333
333
  from lusid.models.data_mapping import DataMapping
334
334
  from lusid.models.data_scope import DataScope
335
335
  from lusid.models.data_type import DataType
336
+ from lusid.models.data_type_entity import DataTypeEntity
336
337
  from lusid.models.data_type_summary import DataTypeSummary
337
338
  from lusid.models.data_type_value_range import DataTypeValueRange
338
339
  from lusid.models.date_attributes import DateAttributes
@@ -1444,6 +1445,7 @@ __all__ = [
1444
1445
  "DataMapping",
1445
1446
  "DataScope",
1446
1447
  "DataType",
1448
+ "DataTypeEntity",
1447
1449
  "DataTypeSummary",
1448
1450
  "DataTypeValueRange",
1449
1451
  "DateAttributes",
lusid/api/entities_api.py CHANGED
@@ -26,6 +26,7 @@ from pydantic.v1 import Field, StrictStr, conlist, constr, validator
26
26
 
27
27
  from typing import Optional
28
28
 
29
+ from lusid.models.data_type_entity import DataTypeEntity
29
30
  from lusid.models.instrument_entity import InstrumentEntity
30
31
  from lusid.models.portfolio_entity import PortfolioEntity
31
32
  from lusid.models.property_definition_entity import PropertyDefinitionEntity
@@ -51,6 +52,177 @@ class EntitiesApi:
51
52
  api_client = ApiClient.get_default()
52
53
  self.api_client = api_client
53
54
 
55
+ @overload
56
+ async def get_data_type_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the DataType definition.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> DataTypeEntity: # noqa: E501
57
+ ...
58
+
59
+ @overload
60
+ def get_data_type_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the DataType definition.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, async_req: Optional[bool]=True, **kwargs) -> DataTypeEntity: # noqa: E501
61
+ ...
62
+
63
+ @validate_arguments
64
+ def get_data_type_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the DataType definition.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, async_req: Optional[bool]=None, **kwargs) -> Union[DataTypeEntity, Awaitable[DataTypeEntity]]: # noqa: E501
65
+ """[EXPERIMENTAL] GetDataTypeByEntityUniqueId: Get DataType by EntityUniqueId # noqa: E501
66
+
67
+ Retrieve the definition of a particular DataType. If the DataType is deleted, this will return the state of the DataType immediately prior to deletion. # noqa: E501
68
+ This method makes a synchronous HTTP request by default. To make an
69
+ asynchronous HTTP request, please pass async_req=True
70
+
71
+ >>> thread = api.get_data_type_by_entity_unique_id(entity_unique_id, as_at, previews, async_req=True)
72
+ >>> result = thread.get()
73
+
74
+ :param entity_unique_id: The universally unique identifier of the DataType definition. (required)
75
+ :type entity_unique_id: str
76
+ :param as_at: The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.
77
+ :type as_at: datetime
78
+ :param previews: The ids of the staged modifications to be previewed in the response.
79
+ :type previews: List[str]
80
+ :param async_req: Whether to execute the request asynchronously.
81
+ :type async_req: bool, optional
82
+ :param _request_timeout: timeout setting for this request.
83
+ If one number provided, it will be total request
84
+ timeout. It can also be a pair (tuple) of
85
+ (connection, read) timeouts.
86
+ :return: Returns the result object.
87
+ If the method is called asynchronously,
88
+ returns the request thread.
89
+ :rtype: DataTypeEntity
90
+ """
91
+ kwargs['_return_http_data_only'] = True
92
+ if '_preload_content' in kwargs:
93
+ message = "Error! Please call the get_data_type_by_entity_unique_id_with_http_info method with `_preload_content` instead and obtain raw data from ApiResponse.raw_data" # noqa: E501
94
+ raise ValueError(message)
95
+ if async_req is not None:
96
+ kwargs['async_req'] = async_req
97
+ return self.get_data_type_by_entity_unique_id_with_http_info(entity_unique_id, as_at, previews, **kwargs) # noqa: E501
98
+
99
+ @validate_arguments
100
+ def get_data_type_by_entity_unique_id_with_http_info(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the DataType definition.")], as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> ApiResponse: # noqa: E501
101
+ """[EXPERIMENTAL] GetDataTypeByEntityUniqueId: Get DataType by EntityUniqueId # noqa: E501
102
+
103
+ Retrieve the definition of a particular DataType. If the DataType is deleted, this will return the state of the DataType immediately prior to deletion. # noqa: E501
104
+ This method makes a synchronous HTTP request by default. To make an
105
+ asynchronous HTTP request, please pass async_req=True
106
+
107
+ >>> thread = api.get_data_type_by_entity_unique_id_with_http_info(entity_unique_id, as_at, previews, async_req=True)
108
+ >>> result = thread.get()
109
+
110
+ :param entity_unique_id: The universally unique identifier of the DataType definition. (required)
111
+ :type entity_unique_id: str
112
+ :param as_at: The asAt datetime at which to retrieve the DataType definition. Defaults to returning the latest version of the DataType definition if not specified.
113
+ :type as_at: datetime
114
+ :param previews: The ids of the staged modifications to be previewed in the response.
115
+ :type previews: List[str]
116
+ :param async_req: Whether to execute the request asynchronously.
117
+ :type async_req: bool, optional
118
+ :param _preload_content: if False, the ApiResponse.data will
119
+ be set to none and raw_data will store the
120
+ HTTP response body without reading/decoding.
121
+ Default is True.
122
+ :type _preload_content: bool, optional
123
+ :param _return_http_data_only: response data instead of ApiResponse
124
+ object with status code, headers, etc
125
+ :type _return_http_data_only: bool, optional
126
+ :param _request_timeout: timeout setting for this request. If one
127
+ number provided, it will be total request
128
+ timeout. It can also be a pair (tuple) of
129
+ (connection, read) timeouts.
130
+ :param _request_auth: set to override the auth_settings for an a single
131
+ request; this effectively ignores the authentication
132
+ in the spec for a single request.
133
+ :type _request_auth: dict, optional
134
+ :type _content_type: string, optional: force content-type for the request
135
+ :return: Returns the result object.
136
+ If the method is called asynchronously,
137
+ returns the request thread.
138
+ :rtype: tuple(DataTypeEntity, status_code(int), headers(HTTPHeaderDict))
139
+ """
140
+
141
+ _params = locals()
142
+
143
+ _all_params = [
144
+ 'entity_unique_id',
145
+ 'as_at',
146
+ 'previews'
147
+ ]
148
+ _all_params.extend(
149
+ [
150
+ 'async_req',
151
+ '_return_http_data_only',
152
+ '_preload_content',
153
+ '_request_timeout',
154
+ '_request_auth',
155
+ '_content_type',
156
+ '_headers'
157
+ ]
158
+ )
159
+
160
+ # validate the arguments
161
+ for _key, _val in _params['kwargs'].items():
162
+ if _key not in _all_params:
163
+ raise ApiTypeError(
164
+ "Got an unexpected keyword argument '%s'"
165
+ " to method get_data_type_by_entity_unique_id" % _key
166
+ )
167
+ _params[_key] = _val
168
+ del _params['kwargs']
169
+
170
+ _collection_formats = {}
171
+
172
+ # process the path parameters
173
+ _path_params = {}
174
+ if _params['entity_unique_id']:
175
+ _path_params['entityUniqueId'] = _params['entity_unique_id']
176
+
177
+
178
+ # process the query parameters
179
+ _query_params = []
180
+ if _params.get('as_at') is not None: # noqa: E501
181
+ if isinstance(_params['as_at'], datetime):
182
+ _query_params.append(('asAt', _params['as_at'].strftime(self.api_client.configuration.datetime_format)))
183
+ else:
184
+ _query_params.append(('asAt', _params['as_at']))
185
+
186
+ if _params.get('previews') is not None: # noqa: E501
187
+ _query_params.append(('previews', _params['previews']))
188
+ _collection_formats['previews'] = 'multi'
189
+
190
+ # process the header parameters
191
+ _header_params = dict(_params.get('_headers', {}))
192
+ # process the form parameters
193
+ _form_params = []
194
+ _files = {}
195
+ # process the body parameter
196
+ _body_params = None
197
+ # set the HTTP header `Accept`
198
+ _header_params['Accept'] = self.api_client.select_header_accept(
199
+ ['text/plain', 'application/json', 'text/json']) # noqa: E501
200
+
201
+ # authentication setting
202
+ _auth_settings = ['oauth2'] # noqa: E501
203
+
204
+ _response_types_map = {
205
+ '200': "DataTypeEntity",
206
+ '400': "LusidValidationProblemDetails",
207
+ }
208
+
209
+ return self.api_client.call_api(
210
+ '/api/entities/datatypes/{entityUniqueId}', 'GET',
211
+ _path_params,
212
+ _query_params,
213
+ _header_params,
214
+ body=_body_params,
215
+ post_params=_form_params,
216
+ files=_files,
217
+ response_types_map=_response_types_map,
218
+ auth_settings=_auth_settings,
219
+ async_req=_params.get('async_req'),
220
+ _return_http_data_only=_params.get('_return_http_data_only'), # noqa: E501
221
+ _preload_content=_params.get('_preload_content', True),
222
+ _request_timeout=_params.get('_request_timeout'),
223
+ collection_formats=_collection_formats,
224
+ _request_auth=_params.get('_request_auth'))
225
+
54
226
  @overload
55
227
  async def get_instrument_by_entity_unique_id(self, entity_unique_id : Annotated[constr(strict=True, max_length=40, min_length=30), Field(..., description="The universally unique identifier of the instrument definition.")], effective_at : Annotated[Optional[StrictStr], Field(description="The effective datetime or cut label at which to retrieve the Instrument definition. Defaults to the current LUSID system datetime if not specified.")] = None, as_at : Annotated[Optional[datetime], Field(description="The asAt datetime at which to retrieve the instrument definition. Defaults to returning the latest version of the instrument definition if not specified.")] = None, previews : Annotated[Optional[conlist(StrictStr)], Field(description="The ids of the staged modifications to be previewed in the response.")] = None, **kwargs) -> InstrumentEntity: # noqa: E501
56
228
  ...
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.6761\n"\
376
+ "Version of the API: 0.11.6765\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
@@ -254,6 +254,7 @@ from lusid.models.data_map_key import DataMapKey
254
254
  from lusid.models.data_mapping import DataMapping
255
255
  from lusid.models.data_scope import DataScope
256
256
  from lusid.models.data_type import DataType
257
+ from lusid.models.data_type_entity import DataTypeEntity
257
258
  from lusid.models.data_type_summary import DataTypeSummary
258
259
  from lusid.models.data_type_value_range import DataTypeValueRange
259
260
  from lusid.models.date_attributes import DateAttributes
@@ -1287,6 +1288,7 @@ __all__ = [
1287
1288
  "DataMapping",
1288
1289
  "DataScope",
1289
1290
  "DataType",
1291
+ "DataTypeEntity",
1290
1292
  "DataTypeSummary",
1291
1293
  "DataTypeValueRange",
1292
1294
  "DateAttributes",
lusid/models/data_type.py CHANGED
@@ -30,7 +30,6 @@ class DataType(BaseModel):
30
30
  """
31
31
  DataType
32
32
  """
33
- href: Optional[StrictStr] = None
34
33
  type_value_range: StrictStr = Field(..., alias="typeValueRange", description="The available values are: Open, Closed")
35
34
  id: ResourceId = Field(...)
36
35
  display_name: constr(strict=True, min_length=1) = Field(..., alias="displayName")
@@ -41,8 +40,9 @@ class DataType(BaseModel):
41
40
  acceptable_units: Optional[conlist(IUnitDefinitionDto)] = Field(None, alias="acceptableUnits")
42
41
  reference_data: Optional[ReferenceData] = Field(None, alias="referenceData")
43
42
  version: Optional[Version] = None
43
+ href: Optional[StrictStr] = Field(None, description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
44
44
  links: Optional[conlist(Link)] = None
45
- __properties = ["href", "typeValueRange", "id", "displayName", "description", "valueType", "acceptableValues", "unitSchema", "acceptableUnits", "referenceData", "version", "links"]
45
+ __properties = ["typeValueRange", "id", "displayName", "description", "valueType", "acceptableValues", "unitSchema", "acceptableUnits", "referenceData", "version", "href", "links"]
46
46
 
47
47
  @validator('type_value_range')
48
48
  def type_value_range_validate_enum(cls, value):
@@ -115,11 +115,6 @@ class DataType(BaseModel):
115
115
  if _item:
116
116
  _items.append(_item.to_dict())
117
117
  _dict['links'] = _items
118
- # set to None if href (nullable) is None
119
- # and __fields_set__ contains the field
120
- if self.href is None and "href" in self.__fields_set__:
121
- _dict['href'] = None
122
-
123
118
  # set to None if acceptable_values (nullable) is None
124
119
  # and __fields_set__ contains the field
125
120
  if self.acceptable_values is None and "acceptable_values" in self.__fields_set__:
@@ -130,6 +125,11 @@ class DataType(BaseModel):
130
125
  if self.acceptable_units is None and "acceptable_units" in self.__fields_set__:
131
126
  _dict['acceptableUnits'] = None
132
127
 
128
+ # set to None if href (nullable) is None
129
+ # and __fields_set__ contains the field
130
+ if self.href is None and "href" in self.__fields_set__:
131
+ _dict['href'] = None
132
+
133
133
  # set to None if links (nullable) is None
134
134
  # and __fields_set__ contains the field
135
135
  if self.links is None and "links" in self.__fields_set__:
@@ -147,7 +147,6 @@ class DataType(BaseModel):
147
147
  return DataType.parse_obj(obj)
148
148
 
149
149
  _obj = DataType.parse_obj({
150
- "href": obj.get("href"),
151
150
  "type_value_range": obj.get("typeValueRange"),
152
151
  "id": ResourceId.from_dict(obj.get("id")) if obj.get("id") is not None else None,
153
152
  "display_name": obj.get("displayName"),
@@ -158,6 +157,7 @@ class DataType(BaseModel):
158
157
  "acceptable_units": [IUnitDefinitionDto.from_dict(_item) for _item in obj.get("acceptableUnits")] if obj.get("acceptableUnits") is not None else None,
159
158
  "reference_data": ReferenceData.from_dict(obj.get("referenceData")) if obj.get("referenceData") is not None else None,
160
159
  "version": Version.from_dict(obj.get("version")) if obj.get("version") is not None else None,
160
+ "href": obj.get("href"),
161
161
  "links": [Link.from_dict(_item) for _item in obj.get("links")] if obj.get("links") is not None else None
162
162
  })
163
163
  return _obj
@@ -0,0 +1,131 @@
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
22
+ from pydantic.v1 import BaseModel, Field, StrictInt, StrictStr, constr
23
+ from lusid.models.data_type import DataType
24
+
25
+ class DataTypeEntity(BaseModel):
26
+ """
27
+ DataTypeEntity
28
+ """
29
+ href: StrictStr = Field(..., description="The specific Uniform Resource Identifier (URI) for this resource at the requested effective and asAt datetime.")
30
+ entity_unique_id: constr(strict=True, min_length=1) = Field(..., alias="entityUniqueId", description="The unique id of the entity.")
31
+ as_at_version_number: Optional[StrictInt] = Field(None, alias="asAtVersionNumber", description="The integer version number for the entity (the entity was created at version 1)")
32
+ status: constr(strict=True, min_length=1) = Field(..., description="The status of the entity at the current time.")
33
+ as_at_deleted: Optional[datetime] = Field(None, alias="asAtDeleted", description="The asAt datetime at which the entity was deleted.")
34
+ user_id_deleted: Optional[StrictStr] = Field(None, alias="userIdDeleted", description="The unique id of the user who deleted the entity.")
35
+ request_id_deleted: Optional[StrictStr] = Field(None, alias="requestIdDeleted", description="The unique request id of the command that deleted the entity.")
36
+ effective_at_created: Optional[datetime] = Field(None, alias="effectiveAtCreated", description="The EffectiveAt this Entity is created, if entity does not currently exist in EffectiveAt.")
37
+ prevailing_data_type: Optional[DataType] = Field(None, alias="prevailingDataType")
38
+ deleted_data_type: Optional[DataType] = Field(None, alias="deletedDataType")
39
+ previewed_status: Optional[StrictStr] = Field(None, alias="previewedStatus", description="The status of the previewed entity.")
40
+ previewed_data_type: Optional[DataType] = Field(None, alias="previewedDataType")
41
+ __properties = ["href", "entityUniqueId", "asAtVersionNumber", "status", "asAtDeleted", "userIdDeleted", "requestIdDeleted", "effectiveAtCreated", "prevailingDataType", "deletedDataType", "previewedStatus", "previewedDataType"]
42
+
43
+ class Config:
44
+ """Pydantic configuration"""
45
+ allow_population_by_field_name = True
46
+ validate_assignment = True
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.dict(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ return json.dumps(self.to_dict())
55
+
56
+ @classmethod
57
+ def from_json(cls, json_str: str) -> DataTypeEntity:
58
+ """Create an instance of DataTypeEntity from a JSON string"""
59
+ return cls.from_dict(json.loads(json_str))
60
+
61
+ def to_dict(self):
62
+ """Returns the dictionary representation of the model using alias"""
63
+ _dict = self.dict(by_alias=True,
64
+ exclude={
65
+ },
66
+ exclude_none=True)
67
+ # override the default output from pydantic by calling `to_dict()` of prevailing_data_type
68
+ if self.prevailing_data_type:
69
+ _dict['prevailingDataType'] = self.prevailing_data_type.to_dict()
70
+ # override the default output from pydantic by calling `to_dict()` of deleted_data_type
71
+ if self.deleted_data_type:
72
+ _dict['deletedDataType'] = self.deleted_data_type.to_dict()
73
+ # override the default output from pydantic by calling `to_dict()` of previewed_data_type
74
+ if self.previewed_data_type:
75
+ _dict['previewedDataType'] = self.previewed_data_type.to_dict()
76
+ # set to None if as_at_version_number (nullable) is None
77
+ # and __fields_set__ contains the field
78
+ if self.as_at_version_number is None and "as_at_version_number" in self.__fields_set__:
79
+ _dict['asAtVersionNumber'] = None
80
+
81
+ # set to None if as_at_deleted (nullable) is None
82
+ # and __fields_set__ contains the field
83
+ if self.as_at_deleted is None and "as_at_deleted" in self.__fields_set__:
84
+ _dict['asAtDeleted'] = None
85
+
86
+ # set to None if user_id_deleted (nullable) is None
87
+ # and __fields_set__ contains the field
88
+ if self.user_id_deleted is None and "user_id_deleted" in self.__fields_set__:
89
+ _dict['userIdDeleted'] = None
90
+
91
+ # set to None if request_id_deleted (nullable) is None
92
+ # and __fields_set__ contains the field
93
+ if self.request_id_deleted is None and "request_id_deleted" in self.__fields_set__:
94
+ _dict['requestIdDeleted'] = None
95
+
96
+ # set to None if effective_at_created (nullable) is None
97
+ # and __fields_set__ contains the field
98
+ if self.effective_at_created is None and "effective_at_created" in self.__fields_set__:
99
+ _dict['effectiveAtCreated'] = None
100
+
101
+ # set to None if previewed_status (nullable) is None
102
+ # and __fields_set__ contains the field
103
+ if self.previewed_status is None and "previewed_status" in self.__fields_set__:
104
+ _dict['previewedStatus'] = None
105
+
106
+ return _dict
107
+
108
+ @classmethod
109
+ def from_dict(cls, obj: dict) -> DataTypeEntity:
110
+ """Create an instance of DataTypeEntity from a dict"""
111
+ if obj is None:
112
+ return None
113
+
114
+ if not isinstance(obj, dict):
115
+ return DataTypeEntity.parse_obj(obj)
116
+
117
+ _obj = DataTypeEntity.parse_obj({
118
+ "href": obj.get("href"),
119
+ "entity_unique_id": obj.get("entityUniqueId"),
120
+ "as_at_version_number": obj.get("asAtVersionNumber"),
121
+ "status": obj.get("status"),
122
+ "as_at_deleted": obj.get("asAtDeleted"),
123
+ "user_id_deleted": obj.get("userIdDeleted"),
124
+ "request_id_deleted": obj.get("requestIdDeleted"),
125
+ "effective_at_created": obj.get("effectiveAtCreated"),
126
+ "prevailing_data_type": DataType.from_dict(obj.get("prevailingDataType")) if obj.get("prevailingDataType") is not None else None,
127
+ "deleted_data_type": DataType.from_dict(obj.get("deletedDataType")) if obj.get("deletedDataType") is not None else None,
128
+ "previewed_status": obj.get("previewedStatus"),
129
+ "previewed_data_type": DataType.from_dict(obj.get("previewedDataType")) if obj.get("previewedDataType") is not None else None
130
+ })
131
+ return _obj
@@ -18,8 +18,8 @@ import re # noqa: F401
18
18
  import json
19
19
 
20
20
  from datetime import datetime
21
- from typing import Any, Dict, List, Optional
22
- from pydantic.v1 import BaseModel, Field, StrictStr, conlist, constr
21
+ from typing import Any, Dict, List, Optional, Union
22
+ from pydantic.v1 import BaseModel, Field, StrictFloat, StrictInt, StrictStr, conlist, constr
23
23
  from lusid.models.currency_and_amount import CurrencyAndAmount
24
24
  from lusid.models.link import Link
25
25
  from lusid.models.model_property import ModelProperty
@@ -40,6 +40,7 @@ class JournalEntryLine(BaseModel):
40
40
  general_ledger_account_code: constr(strict=True, min_length=1) = Field(..., alias="generalLedgerAccountCode", description="The code of the account in the general ledger the Journal Entry was posted to.")
41
41
  local: CurrencyAndAmount = Field(...)
42
42
  base: CurrencyAndAmount = Field(...)
43
+ units: Union[StrictFloat, StrictInt] = Field(..., description="Units held for the Journal Entry Line.")
43
44
  posting_module_code: Optional[StrictStr] = Field(None, alias="postingModuleCode", description="The code of the posting module where the posting rules derived the Journal Entry lines.")
44
45
  posting_rule: constr(strict=True, min_length=1) = Field(..., alias="postingRule", description="The rule generating the Journal Entry Line.")
45
46
  as_at_date: datetime = Field(..., alias="asAtDate", description="The corresponding input date and time of the Transaction generating the Journal Entry Line.")
@@ -58,7 +59,7 @@ class JournalEntryLine(BaseModel):
58
59
  ledger_column: Optional[StrictStr] = Field(None, alias="ledgerColumn", description="Indicates if the Journal Entry Line is credit or debit.")
59
60
  journal_entry_line_type: Optional[StrictStr] = Field(None, alias="journalEntryLineType", description="Indicates the Journal Entry Line type")
60
61
  links: Optional[conlist(Link)] = None
61
- __properties = ["accountingDate", "activityDate", "portfolioId", "instrumentId", "instrumentScope", "subHoldingKeys", "taxLotId", "generalLedgerAccountCode", "local", "base", "postingModuleCode", "postingRule", "asAtDate", "activitiesDescription", "sourceType", "sourceId", "properties", "movementName", "holdingType", "economicBucket", "economicBucketComponent", "levels", "sourceLevels", "movementSign", "holdingSign", "ledgerColumn", "journalEntryLineType", "links"]
62
+ __properties = ["accountingDate", "activityDate", "portfolioId", "instrumentId", "instrumentScope", "subHoldingKeys", "taxLotId", "generalLedgerAccountCode", "local", "base", "units", "postingModuleCode", "postingRule", "asAtDate", "activitiesDescription", "sourceType", "sourceId", "properties", "movementName", "holdingType", "economicBucket", "economicBucketComponent", "levels", "sourceLevels", "movementSign", "holdingSign", "ledgerColumn", "journalEntryLineType", "links"]
62
63
 
63
64
  class Config:
64
65
  """Pydantic configuration"""
@@ -211,6 +212,7 @@ class JournalEntryLine(BaseModel):
211
212
  "general_ledger_account_code": obj.get("generalLedgerAccountCode"),
212
213
  "local": CurrencyAndAmount.from_dict(obj.get("local")) if obj.get("local") is not None else None,
213
214
  "base": CurrencyAndAmount.from_dict(obj.get("base")) if obj.get("base") is not None else None,
215
+ "units": obj.get("units"),
214
216
  "posting_module_code": obj.get("postingModuleCode"),
215
217
  "posting_rule": obj.get("postingRule"),
216
218
  "as_at_date": obj.get("asAtDate"),
@@ -19,7 +19,7 @@ import json
19
19
 
20
20
 
21
21
  from typing import Any, Dict, Optional
22
- from pydantic.v1 import BaseModel, Field, StrictStr, constr, validator
22
+ from pydantic.v1 import BaseModel, Field, StrictBool, StrictStr, constr, validator
23
23
 
24
24
  class ShareClassDetails(BaseModel):
25
25
  """
@@ -28,7 +28,8 @@ class ShareClassDetails(BaseModel):
28
28
  lusid_instrument_id: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="lusidInstrumentId", description="LUSID's internal unique instrument identifier, resolved from the share class' instrument identifiers")
29
29
  instrument_scope: Optional[constr(strict=True, max_length=64, min_length=1)] = Field(None, alias="instrumentScope", description="The scope in which the share class instrument lies.")
30
30
  dom_currency: Optional[StrictStr] = Field(None, alias="domCurrency", description="The domestic currency of the share class instrument")
31
- __properties = ["lusidInstrumentId", "instrumentScope", "domCurrency"]
31
+ instrument_active: Optional[StrictBool] = Field(None, alias="instrumentActive", description="If the instrument of the share class is active.")
32
+ __properties = ["lusidInstrumentId", "instrumentScope", "domCurrency", "instrumentActive"]
32
33
 
33
34
  @validator('lusid_instrument_id')
34
35
  def lusid_instrument_id_validate_regular_expression(cls, value):
@@ -103,6 +104,7 @@ class ShareClassDetails(BaseModel):
103
104
  _obj = ShareClassDetails.parse_obj({
104
105
  "lusid_instrument_id": obj.get("lusidInstrumentId"),
105
106
  "instrument_scope": obj.get("instrumentScope"),
106
- "dom_currency": obj.get("domCurrency")
107
+ "dom_currency": obj.get("domCurrency"),
108
+ "instrument_active": obj.get("instrumentActive")
107
109
  })
108
110
  return _obj
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: lusid-sdk
3
- Version: 2.1.330
3
+ Version: 2.1.334
4
4
  Summary: LUSID API
5
5
  Home-page: https://github.com/finbourne/lusid-sdk-python
6
6
  License: MIT
@@ -208,6 +208,7 @@ Class | Method | HTTP request | Description
208
208
  *DataTypesApi* | [**update_reference_values**](docs/DataTypesApi.md#update_reference_values) | **PUT** /api/datatypes/{scope}/{code}/referencedatavalues | [EARLY ACCESS] UpdateReferenceValues: Update reference data on a data type
209
209
  *DerivedTransactionPortfoliosApi* | [**create_derived_portfolio**](docs/DerivedTransactionPortfoliosApi.md#create_derived_portfolio) | **POST** /api/derivedtransactionportfolios/{scope} | CreateDerivedPortfolio: Create derived portfolio
210
210
  *DerivedTransactionPortfoliosApi* | [**delete_derived_portfolio_details**](docs/DerivedTransactionPortfoliosApi.md#delete_derived_portfolio_details) | **DELETE** /api/derivedtransactionportfolios/{scope}/{code}/details | [EARLY ACCESS] DeleteDerivedPortfolioDetails: Delete derived portfolio details
211
+ *EntitiesApi* | [**get_data_type_by_entity_unique_id**](docs/EntitiesApi.md#get_data_type_by_entity_unique_id) | **GET** /api/entities/datatypes/{entityUniqueId} | [EXPERIMENTAL] GetDataTypeByEntityUniqueId: Get DataType by EntityUniqueId
211
212
  *EntitiesApi* | [**get_instrument_by_entity_unique_id**](docs/EntitiesApi.md#get_instrument_by_entity_unique_id) | **GET** /api/entities/instruments/{entityUniqueId} | [EXPERIMENTAL] GetInstrumentByEntityUniqueId: Get instrument by EntityUniqueId
212
213
  *EntitiesApi* | [**get_portfolio_by_entity_unique_id**](docs/EntitiesApi.md#get_portfolio_by_entity_unique_id) | **GET** /api/entities/portfolios/{entityUniqueId} | [EXPERIMENTAL] GetPortfolioByEntityUniqueId: Get portfolio by EntityUniqueId
213
214
  *EntitiesApi* | [**get_portfolio_changes**](docs/EntitiesApi.md#get_portfolio_changes) | **GET** /api/entities/changes/portfolios | GetPortfolioChanges: Get the next change to each portfolio in a scope.
@@ -815,6 +816,7 @@ Class | Method | HTTP request | Description
815
816
  - [DataMapping](docs/DataMapping.md)
816
817
  - [DataScope](docs/DataScope.md)
817
818
  - [DataType](docs/DataType.md)
819
+ - [DataTypeEntity](docs/DataTypeEntity.md)
818
820
  - [DataTypeSummary](docs/DataTypeSummary.md)
819
821
  - [DataTypeValueRange](docs/DataTypeValueRange.md)
820
822
  - [DateAttributes](docs/DateAttributes.md)
@@ -1,4 +1,4 @@
1
- lusid/__init__.py,sha256=cNaRXLVrMI6ymGtFzzDd6gD4v4koVw4j6PehOCpuYSE,114265
1
+ lusid/__init__.py,sha256=jKewBEkQd00ywToJglKUyCU_GLQBjiQnvuoyc6ZiZJ8,114344
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
@@ -22,7 +22,7 @@ lusid/api/custom_entity_types_api.py,sha256=fLeAZaJ9Gdkfkr_UVDuqueiIxuN_5ri80dvq
22
22
  lusid/api/cut_label_definitions_api.py,sha256=7sroMqRhrOXdJlHQJ6f4NbqDRwOh7ewfY2yHGopZ7KM,47049
23
23
  lusid/api/data_types_api.py,sha256=OiQL4CRxwWd06DovdcLZbOqPx4AfbwYQ9yXYtaRqWWc,77801
24
24
  lusid/api/derived_transaction_portfolios_api.py,sha256=cKv5mKNmTiuHzWGwupwcSBibj3Ncwv88GiEJSqmAbCY,20227
25
- lusid/api/entities_api.py,sha256=kV00-PgBlWfwLV4T9qhaaOntVoo-NJwzkSACLQu80Xw,46666
25
+ lusid/api/entities_api.py,sha256=gwA41PK2gtuUq8tT20Nl5sC0EffveDvvR_83X5NOWso,57122
26
26
  lusid/api/executions_api.py,sha256=u92G5bsNwzMlKt9OyV7MQy6BTJc3TC9_7qgg8xXAuL0,44375
27
27
  lusid/api/fee_types_api.py,sha256=4_wZtZkRyK2RHfDBwAK2XrspWzF_LCBYe_RUt_Y17zM,56137
28
28
  lusid/api/fund_configurations_api.py,sha256=XbNaocdjU8sf37NZmH6NR1VMSITut9Fw6SMhOVBEjJ4,64107
@@ -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=gkSwg9Z73juiw06AGXaM4ezxxfo26-15VjWeqSEg42E,14404
71
+ lusid/configuration.py,sha256=WmLwtlou8iT2w69c9axnPxcnW7WS_r2AABdKGKo6OaM,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=PVp7EdxkDmGMDX4kTiaNrS5r9sE2nTKAKRqk6LCoxBA,107581
85
+ lusid/models/__init__.py,sha256=-kdSl9Kb7_OuVjlz_7KfE-H0nOKYQbaNRv5W7gbSHXA,107660
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
@@ -322,7 +322,8 @@ lusid/models/data_definition.py,sha256=Qec5QcARQS0eU7l2ffhCKirfcPg1aQD-YRH-C0S-H
322
322
  lusid/models/data_map_key.py,sha256=C5B8fN4pTsO1DOGwiBrzudP96Mn9FHn8OLpjA6rLfLc,3407
323
323
  lusid/models/data_mapping.py,sha256=Is0cRnq2bDOXbx6SSheCH4diqFxNcsobCpIv34B4TLc,3637
324
324
  lusid/models/data_scope.py,sha256=p-8zVk5vyLUzWERyDPgmBMkYMwKTDdM-ShGKwAFJ2Ko,2324
325
- lusid/models/data_type.py,sha256=FzG2QmiAppyKuj6aqYEcuNe1faYFVUokfDjDGi1E-ic,7627
325
+ lusid/models/data_type.py,sha256=m-KEJwXEMSVnP_XrECT9lCy4dvkr1Q-mWQ7lYuuDAgc,7760
326
+ lusid/models/data_type_entity.py,sha256=6Bwf9syJbtMUm1BSTLlL1p0Birq6rCAqy7wCQ0qrmGw,6677
326
327
  lusid/models/data_type_summary.py,sha256=vxRqXJKBcXMJmlLKTxRcG4F4zv2eFVfPl6q6hFGsyPQ,6616
327
328
  lusid/models/data_type_value_range.py,sha256=5YSqhwEsjFS9_0UpjmiTra9NDWAi0Bp8ZMS62hBlYlo,722
328
329
  lusid/models/date_attributes.py,sha256=1zy4nT1ZA2i6UT7p9zVrUkZjBgpQPJzOZMqlQtacsm8,5794
@@ -532,7 +533,7 @@ lusid/models/intermediate_compliance_step_request.py,sha256=cx9WUvfU_jlcOv3RskTe
532
533
  lusid/models/ir_vol_cube_data.py,sha256=2USuuiZigPzS0kwmMMTu1Ih9GHln6TAkPamcYNmUYQ4,5867
533
534
  lusid/models/ir_vol_dependency.py,sha256=D937a4jaVJw75aCY4iQfkwVQW9T5F_vL8g6pbULBmMQ,4523
534
535
  lusid/models/is_business_day_response.py,sha256=LMwNCeJaC1JJ1W5Qp9WkWOBQ-mBA036kPYkG7p-7Yjs,2163
535
- lusid/models/journal_entry_line.py,sha256=YjyJvtQU-O4v-ss1822bqmvsjBRZBKmkitL0Q2N2gws,13873
536
+ lusid/models/journal_entry_line.py,sha256=qUPznQuVteBt5MwPtZjWJHBWPfiZ9s1TtE734oHQ8D0,14060
536
537
  lusid/models/journal_entry_lines_query_parameters.py,sha256=ZZhOnG3yXxNvfzL9gxLO0OzFdg_O4R5ZqIz83EE-CwE,4663
537
538
  lusid/models/label_value_set.py,sha256=LmKlXRjeEx_uT1enh_EthgQx6e9JKNyGkBKkTd2eijI,1895
538
539
  lusid/models/leg_definition.py,sha256=WgraquXV_a2tt9Zo4TetGUz8_CMEh-PsxI90VN_1yJk,11100
@@ -921,7 +922,7 @@ lusid/models/settlement_schedule.py,sha256=59PJAHeLK6_fxSRjQ7wGk4zUbyIMjZhiZ-RJ1
921
922
  lusid/models/share_class_amount.py,sha256=l-3zCMzmy84d1c0co0t_DgXOCk8t2RKBZ1XljO1jOks,2133
922
923
  lusid/models/share_class_breakdown.py,sha256=IrD_nQ6cMUod_fA8V_vWAVGgbPh8ccQgP6xQ_hodTJk,8058
923
924
  lusid/models/share_class_data.py,sha256=dQp2IM-pzSazRdXT4aIHN3BsWiso360CemAwWmu_UH0,2903
924
- lusid/models/share_class_details.py,sha256=dBbEwt4rC4zox8dzf0XiZQwJv_s8kSqgNWmXIqJTym4,4040
925
+ lusid/models/share_class_details.py,sha256=SMX_luuHnRXghiCct1Ftt_KhwNjSyo2fC6uxAB_oqmA,4281
925
926
  lusid/models/share_class_pnl_breakdown.py,sha256=fKJrgNp-Fn9c52DXeNdwAWz-WZ2suJ8-LdyAl5iZRrY,4551
926
927
  lusid/models/side_configuration_data.py,sha256=iv4nyDEEAYA2TUfY-dlqOGwn-mft8qMGVQk6itgxqe4,3518
927
928
  lusid/models/side_configuration_data_request.py,sha256=qWt-UDjQbcoPpHCUpRwcSN8NFfcZ4TpHMn2dRuR3WVw,2842
@@ -1115,6 +1116,6 @@ lusid/models/weighted_instruments.py,sha256=1y_y_vw4-LPsbkQx4FOzWdZc5fJnzhVkf1D3
1115
1116
  lusid/models/yield_curve_data.py,sha256=SbxvdJ4-GWK9kpMdw4Fnxc7_kvIMwgsRsd_31UJn7nw,6330
1116
1117
  lusid/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
1117
1118
  lusid/rest.py,sha256=TNUzQ3yLNT2L053EdR7R0vNzQh2J3TlYD1T56Dye0W0,10138
1118
- lusid_sdk-2.1.330.dist-info/METADATA,sha256=LmY3PswgapKwxeBM__vEY1lSodH3yowrs0p5-X5h3L8,188179
1119
- lusid_sdk-2.1.330.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1120
- lusid_sdk-2.1.330.dist-info/RECORD,,
1119
+ lusid_sdk-2.1.334.dist-info/METADATA,sha256=yTVlRwDPJjM0BOqe-fKq96rydZdaoBXeWPbUdKWqeZ8,188462
1120
+ lusid_sdk-2.1.334.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
1121
+ lusid_sdk-2.1.334.dist-info/RECORD,,