benchling-api-client 2.0.411__py3-none-any.whl → 2.0.412__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 (49) hide show
  1. benchling_api_client/models/aa_sequence.py +32 -0
  2. benchling_api_client/models/aa_sequence_with_entity_type.py +32 -0
  3. benchling_api_client/models/benchling_app.py +4 -4
  4. benchling_api_client/models/box_schema.py +41 -0
  5. benchling_api_client/models/custom_entity.py +32 -0
  6. benchling_api_client/models/custom_entity_with_entity_type.py +32 -0
  7. benchling_api_client/models/dna_sequence.py +68 -0
  8. benchling_api_client/models/dna_sequence_with_entity_type.py +68 -0
  9. benchling_api_client/models/entry_schema_detailed.py +41 -0
  10. benchling_api_client/models/location_schema.py +41 -0
  11. benchling_api_client/models/monomer.py +32 -0
  12. benchling_api_client/models/plate_schema.py +41 -0
  13. benchling_api_client/models/request_response_samples_item_entity.py +68 -0
  14. benchling_api_client/models/rna_sequence.py +68 -0
  15. benchling_api_client/models/workflow_output.py +40 -0
  16. benchling_api_client/models/workflow_task.py +87 -0
  17. benchling_api_client/models/workflow_task_base.py +40 -0
  18. benchling_api_client/models/workflow_task_group.py +87 -0
  19. benchling_api_client/models/workflow_task_group_base.py +40 -0
  20. benchling_api_client/models/workflow_task_schema.py +41 -0
  21. benchling_api_client/v2/beta/models/aa_sequence.py +32 -0
  22. benchling_api_client/v2/beta/models/custom_entity.py +32 -0
  23. benchling_api_client/v2/beta/models/dna_sequence.py +68 -0
  24. benchling_api_client/v2/beta/openapi.yaml +14 -0
  25. benchling_api_client/v2/stable/models/aa_sequence.py +32 -0
  26. benchling_api_client/v2/stable/models/aa_sequence_with_entity_type.py +32 -0
  27. benchling_api_client/v2/stable/models/benchling_app.py +4 -4
  28. benchling_api_client/v2/stable/models/box_schema.py +41 -0
  29. benchling_api_client/v2/stable/models/custom_entity.py +32 -0
  30. benchling_api_client/v2/stable/models/custom_entity_with_entity_type.py +32 -0
  31. benchling_api_client/v2/stable/models/dna_sequence.py +68 -0
  32. benchling_api_client/v2/stable/models/dna_sequence_with_entity_type.py +68 -0
  33. benchling_api_client/v2/stable/models/entry_schema_detailed.py +41 -0
  34. benchling_api_client/v2/stable/models/location_schema.py +41 -0
  35. benchling_api_client/v2/stable/models/monomer.py +32 -0
  36. benchling_api_client/v2/stable/models/plate_schema.py +41 -0
  37. benchling_api_client/v2/stable/models/request_response_samples_item_entity.py +68 -0
  38. benchling_api_client/v2/stable/models/rna_sequence.py +68 -0
  39. benchling_api_client/v2/stable/models/workflow_output.py +40 -0
  40. benchling_api_client/v2/stable/models/workflow_task.py +87 -0
  41. benchling_api_client/v2/stable/models/workflow_task_base.py +40 -0
  42. benchling_api_client/v2/stable/models/workflow_task_group.py +87 -0
  43. benchling_api_client/v2/stable/models/workflow_task_group_base.py +40 -0
  44. benchling_api_client/v2/stable/models/workflow_task_schema.py +41 -0
  45. benchling_api_client/v2/stable/openapi.yaml +78 -2
  46. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/METADATA +1 -1
  47. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/RECORD +49 -49
  48. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/LICENSE +0 -0
  49. {benchling_api_client-2.0.411.dist-info → benchling_api_client-2.0.412.dist-info}/WHEEL +0 -0
@@ -1,6 +1,8 @@
1
+ import datetime
1
2
  from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
2
3
 
3
4
  import attr
5
+ from dateutil.parser import isoparse
4
6
 
5
7
  from ..extensions import NotPresentError, UnknownType
6
8
  from ..models.archive_record import ArchiveRecord
@@ -19,6 +21,7 @@ T = TypeVar("T", bound="EntrySchemaDetailed")
19
21
  class EntrySchemaDetailed:
20
22
  """ """
21
23
 
24
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
22
25
  _type: Union[Unset, EntrySchemaDetailedType] = UNSET
23
26
  _prefix: Union[Unset, str] = UNSET
24
27
  _registry_id: Union[Unset, str] = UNSET
@@ -42,6 +45,7 @@ class EntrySchemaDetailed:
42
45
 
43
46
  def __repr__(self):
44
47
  fields = []
48
+ fields.append("modified_at={}".format(repr(self._modified_at)))
45
49
  fields.append("type={}".format(repr(self._type)))
46
50
  fields.append("prefix={}".format(repr(self._prefix)))
47
51
  fields.append("registry_id={}".format(repr(self._registry_id)))
@@ -53,6 +57,10 @@ class EntrySchemaDetailed:
53
57
  return "EntrySchemaDetailed({})".format(", ".join(fields))
54
58
 
55
59
  def to_dict(self) -> Dict[str, Any]:
60
+ modified_at: Union[Unset, str] = UNSET
61
+ if not isinstance(self._modified_at, Unset):
62
+ modified_at = self._modified_at.isoformat()
63
+
56
64
  type: Union[Unset, int] = UNSET
57
65
  if not isinstance(self._type, Unset):
58
66
  type = self._type.value
@@ -92,6 +100,8 @@ class EntrySchemaDetailed:
92
100
  field_dict: Dict[str, Any] = {}
93
101
  field_dict.update(self.additional_properties)
94
102
  # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
103
+ if modified_at is not UNSET:
104
+ field_dict["modifiedAt"] = modified_at
95
105
  if type is not UNSET:
96
106
  field_dict["type"] = type
97
107
  if prefix is not UNSET:
@@ -113,6 +123,21 @@ class EntrySchemaDetailed:
113
123
  def from_dict(cls: Type[T], src_dict: Dict[str, Any], strict: bool = False) -> T:
114
124
  d = src_dict.copy()
115
125
 
126
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
127
+ modified_at: Union[Unset, datetime.datetime] = UNSET
128
+ _modified_at = d.pop("modifiedAt")
129
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
130
+ modified_at = isoparse(cast(str, _modified_at))
131
+
132
+ return modified_at
133
+
134
+ try:
135
+ modified_at = get_modified_at()
136
+ except KeyError:
137
+ if strict:
138
+ raise
139
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
140
+
116
141
  def get_type() -> Union[Unset, EntrySchemaDetailedType]:
117
142
  type = UNSET
118
143
  _type = d.pop("type")
@@ -297,6 +322,7 @@ class EntrySchemaDetailed:
297
322
  name = cast(Union[Unset, str], UNSET)
298
323
 
299
324
  entry_schema_detailed = cls(
325
+ modified_at=modified_at,
300
326
  type=type,
301
327
  prefix=prefix,
302
328
  registry_id=registry_id,
@@ -328,6 +354,21 @@ class EntrySchemaDetailed:
328
354
  def get(self, key, default=None) -> Optional[Any]:
329
355
  return self.additional_properties.get(key, default)
330
356
 
357
+ @property
358
+ def modified_at(self) -> datetime.datetime:
359
+ """ DateTime the Entry Schema was last modified """
360
+ if isinstance(self._modified_at, Unset):
361
+ raise NotPresentError(self, "modified_at")
362
+ return self._modified_at
363
+
364
+ @modified_at.setter
365
+ def modified_at(self, value: datetime.datetime) -> None:
366
+ self._modified_at = value
367
+
368
+ @modified_at.deleter
369
+ def modified_at(self) -> None:
370
+ self._modified_at = UNSET
371
+
331
372
  @property
332
373
  def type(self) -> EntrySchemaDetailedType:
333
374
  if isinstance(self._type, Unset):
@@ -1,6 +1,8 @@
1
+ import datetime
1
2
  from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
2
3
 
3
4
  import attr
5
+ from dateutil.parser import isoparse
4
6
 
5
7
  from ..extensions import NotPresentError, UnknownType
6
8
  from ..models.archive_record import ArchiveRecord
@@ -19,6 +21,7 @@ T = TypeVar("T", bound="LocationSchema")
19
21
  class LocationSchema:
20
22
  """ """
21
23
 
24
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
22
25
  _type: Union[Unset, LocationSchemaType] = UNSET
23
26
  _prefix: Union[Unset, str] = UNSET
24
27
  _registry_id: Union[Unset, str] = UNSET
@@ -42,6 +45,7 @@ class LocationSchema:
42
45
 
43
46
  def __repr__(self):
44
47
  fields = []
48
+ fields.append("modified_at={}".format(repr(self._modified_at)))
45
49
  fields.append("type={}".format(repr(self._type)))
46
50
  fields.append("prefix={}".format(repr(self._prefix)))
47
51
  fields.append("registry_id={}".format(repr(self._registry_id)))
@@ -53,6 +57,10 @@ class LocationSchema:
53
57
  return "LocationSchema({})".format(", ".join(fields))
54
58
 
55
59
  def to_dict(self) -> Dict[str, Any]:
60
+ modified_at: Union[Unset, str] = UNSET
61
+ if not isinstance(self._modified_at, Unset):
62
+ modified_at = self._modified_at.isoformat()
63
+
56
64
  type: Union[Unset, int] = UNSET
57
65
  if not isinstance(self._type, Unset):
58
66
  type = self._type.value
@@ -92,6 +100,8 @@ class LocationSchema:
92
100
  field_dict: Dict[str, Any] = {}
93
101
  field_dict.update(self.additional_properties)
94
102
  # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
103
+ if modified_at is not UNSET:
104
+ field_dict["modifiedAt"] = modified_at
95
105
  if type is not UNSET:
96
106
  field_dict["type"] = type
97
107
  if prefix is not UNSET:
@@ -113,6 +123,21 @@ class LocationSchema:
113
123
  def from_dict(cls: Type[T], src_dict: Dict[str, Any], strict: bool = False) -> T:
114
124
  d = src_dict.copy()
115
125
 
126
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
127
+ modified_at: Union[Unset, datetime.datetime] = UNSET
128
+ _modified_at = d.pop("modifiedAt")
129
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
130
+ modified_at = isoparse(cast(str, _modified_at))
131
+
132
+ return modified_at
133
+
134
+ try:
135
+ modified_at = get_modified_at()
136
+ except KeyError:
137
+ if strict:
138
+ raise
139
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
140
+
116
141
  def get_type() -> Union[Unset, LocationSchemaType]:
117
142
  type = UNSET
118
143
  _type = d.pop("type")
@@ -297,6 +322,7 @@ class LocationSchema:
297
322
  name = cast(Union[Unset, str], UNSET)
298
323
 
299
324
  location_schema = cls(
325
+ modified_at=modified_at,
300
326
  type=type,
301
327
  prefix=prefix,
302
328
  registry_id=registry_id,
@@ -328,6 +354,21 @@ class LocationSchema:
328
354
  def get(self, key, default=None) -> Optional[Any]:
329
355
  return self.additional_properties.get(key, default)
330
356
 
357
+ @property
358
+ def modified_at(self) -> datetime.datetime:
359
+ """ DateTime the Location Schema was last modified """
360
+ if isinstance(self._modified_at, Unset):
361
+ raise NotPresentError(self, "modified_at")
362
+ return self._modified_at
363
+
364
+ @modified_at.setter
365
+ def modified_at(self, value: datetime.datetime) -> None:
366
+ self._modified_at = value
367
+
368
+ @modified_at.deleter
369
+ def modified_at(self) -> None:
370
+ self._modified_at = UNSET
371
+
331
372
  @property
332
373
  def type(self) -> LocationSchemaType:
333
374
  if isinstance(self._type, Unset):
@@ -24,6 +24,7 @@ class Monomer:
24
24
  _canonical_smiles: Union[Unset, str] = UNSET
25
25
  _created_at: Union[Unset, datetime.datetime] = UNSET
26
26
  _custom_molecular_weight: Union[Unset, None, float] = UNSET
27
+ _exact_molecular_weight: Union[Unset, float] = UNSET
27
28
  _id: Union[Unset, str] = UNSET
28
29
  _modified_at: Union[Unset, datetime.datetime] = UNSET
29
30
  _monomer_type: Union[Unset, MonomerType] = UNSET
@@ -44,6 +45,7 @@ class Monomer:
44
45
  fields.append("canonical_smiles={}".format(repr(self._canonical_smiles)))
45
46
  fields.append("created_at={}".format(repr(self._created_at)))
46
47
  fields.append("custom_molecular_weight={}".format(repr(self._custom_molecular_weight)))
48
+ fields.append("exact_molecular_weight={}".format(repr(self._exact_molecular_weight)))
47
49
  fields.append("id={}".format(repr(self._id)))
48
50
  fields.append("modified_at={}".format(repr(self._modified_at)))
49
51
  fields.append("monomer_type={}".format(repr(self._monomer_type)))
@@ -73,6 +75,7 @@ class Monomer:
73
75
  created_at = self._created_at.isoformat()
74
76
 
75
77
  custom_molecular_weight = self._custom_molecular_weight
78
+ exact_molecular_weight = self._exact_molecular_weight
76
79
  id = self._id
77
80
  modified_at: Union[Unset, str] = UNSET
78
81
  if not isinstance(self._modified_at, Unset):
@@ -110,6 +113,8 @@ class Monomer:
110
113
  field_dict["createdAt"] = created_at
111
114
  if custom_molecular_weight is not UNSET:
112
115
  field_dict["customMolecularWeight"] = custom_molecular_weight
116
+ if exact_molecular_weight is not UNSET:
117
+ field_dict["exactMolecularWeight"] = exact_molecular_weight
113
118
  if id is not UNSET:
114
119
  field_dict["id"] = id
115
120
  if modified_at is not UNSET:
@@ -213,6 +218,17 @@ class Monomer:
213
218
  raise
214
219
  custom_molecular_weight = cast(Union[Unset, None, float], UNSET)
215
220
 
221
+ def get_exact_molecular_weight() -> Union[Unset, float]:
222
+ exact_molecular_weight = d.pop("exactMolecularWeight")
223
+ return exact_molecular_weight
224
+
225
+ try:
226
+ exact_molecular_weight = get_exact_molecular_weight()
227
+ except KeyError:
228
+ if strict:
229
+ raise
230
+ exact_molecular_weight = cast(Union[Unset, float], UNSET)
231
+
216
232
  def get_id() -> Union[Unset, str]:
217
233
  id = d.pop("id")
218
234
  return id
@@ -355,6 +371,7 @@ class Monomer:
355
371
  canonical_smiles=canonical_smiles,
356
372
  created_at=created_at,
357
373
  custom_molecular_weight=custom_molecular_weight,
374
+ exact_molecular_weight=exact_molecular_weight,
358
375
  id=id,
359
376
  modified_at=modified_at,
360
377
  monomer_type=monomer_type,
@@ -478,6 +495,21 @@ class Monomer:
478
495
  def custom_molecular_weight(self) -> None:
479
496
  self._custom_molecular_weight = UNSET
480
497
 
498
+ @property
499
+ def exact_molecular_weight(self) -> float:
500
+ """ The exact molecular weight of the monomer as calculated by RDKit based on the monomer chemical structure """
501
+ if isinstance(self._exact_molecular_weight, Unset):
502
+ raise NotPresentError(self, "exact_molecular_weight")
503
+ return self._exact_molecular_weight
504
+
505
+ @exact_molecular_weight.setter
506
+ def exact_molecular_weight(self, value: float) -> None:
507
+ self._exact_molecular_weight = value
508
+
509
+ @exact_molecular_weight.deleter
510
+ def exact_molecular_weight(self) -> None:
511
+ self._exact_molecular_weight = UNSET
512
+
481
513
  @property
482
514
  def id(self) -> str:
483
515
  """ ID of the monomer """
@@ -1,6 +1,8 @@
1
+ import datetime
1
2
  from typing import Any, cast, Dict, List, Optional, Type, TypeVar, Union
2
3
 
3
4
  import attr
5
+ from dateutil.parser import isoparse
4
6
 
5
7
  from ..extensions import NotPresentError, UnknownType
6
8
  from ..models.archive_record import ArchiveRecord
@@ -22,6 +24,7 @@ class PlateSchema:
22
24
 
23
25
  _container_schema: Union[Unset, None, PlateSchemaContainerSchema] = UNSET
24
26
  _height: Union[Unset, float] = UNSET
27
+ _modified_at: Union[Unset, datetime.datetime] = UNSET
25
28
  _plate_type: Union[Unset, str] = UNSET
26
29
  _type: Union[Unset, PlateSchemaType] = UNSET
27
30
  _width: Union[Unset, float] = UNSET
@@ -49,6 +52,7 @@ class PlateSchema:
49
52
  fields = []
50
53
  fields.append("container_schema={}".format(repr(self._container_schema)))
51
54
  fields.append("height={}".format(repr(self._height)))
55
+ fields.append("modified_at={}".format(repr(self._modified_at)))
52
56
  fields.append("plate_type={}".format(repr(self._plate_type)))
53
57
  fields.append("type={}".format(repr(self._type)))
54
58
  fields.append("width={}".format(repr(self._width)))
@@ -67,6 +71,10 @@ class PlateSchema:
67
71
  container_schema = self._container_schema.to_dict() if self._container_schema else None
68
72
 
69
73
  height = self._height
74
+ modified_at: Union[Unset, str] = UNSET
75
+ if not isinstance(self._modified_at, Unset):
76
+ modified_at = self._modified_at.isoformat()
77
+
70
78
  plate_type = self._plate_type
71
79
  type: Union[Unset, int] = UNSET
72
80
  if not isinstance(self._type, Unset):
@@ -112,6 +120,8 @@ class PlateSchema:
112
120
  field_dict["containerSchema"] = container_schema
113
121
  if height is not UNSET:
114
122
  field_dict["height"] = height
123
+ if modified_at is not UNSET:
124
+ field_dict["modifiedAt"] = modified_at
115
125
  if plate_type is not UNSET:
116
126
  field_dict["plateType"] = plate_type
117
127
  if type is not UNSET:
@@ -164,6 +174,21 @@ class PlateSchema:
164
174
  raise
165
175
  height = cast(Union[Unset, float], UNSET)
166
176
 
177
+ def get_modified_at() -> Union[Unset, datetime.datetime]:
178
+ modified_at: Union[Unset, datetime.datetime] = UNSET
179
+ _modified_at = d.pop("modifiedAt")
180
+ if _modified_at is not None and not isinstance(_modified_at, Unset):
181
+ modified_at = isoparse(cast(str, _modified_at))
182
+
183
+ return modified_at
184
+
185
+ try:
186
+ modified_at = get_modified_at()
187
+ except KeyError:
188
+ if strict:
189
+ raise
190
+ modified_at = cast(Union[Unset, datetime.datetime], UNSET)
191
+
167
192
  def get_plate_type() -> Union[Unset, str]:
168
193
  plate_type = d.pop("plateType")
169
194
  return plate_type
@@ -372,6 +397,7 @@ class PlateSchema:
372
397
  plate_schema = cls(
373
398
  container_schema=container_schema,
374
399
  height=height,
400
+ modified_at=modified_at,
375
401
  plate_type=plate_type,
376
402
  type=type,
377
403
  width=width,
@@ -433,6 +459,21 @@ class PlateSchema:
433
459
  def height(self) -> None:
434
460
  self._height = UNSET
435
461
 
462
+ @property
463
+ def modified_at(self) -> datetime.datetime:
464
+ """ DateTime the Plate Schema was last modified """
465
+ if isinstance(self._modified_at, Unset):
466
+ raise NotPresentError(self, "modified_at")
467
+ return self._modified_at
468
+
469
+ @modified_at.setter
470
+ def modified_at(self, value: datetime.datetime) -> None:
471
+ self._modified_at = value
472
+
473
+ @modified_at.deleter
474
+ def modified_at(self) -> None:
475
+ self._modified_at = UNSET
476
+
436
477
  @property
437
478
  def plate_type(self) -> str:
438
479
  if isinstance(self._plate_type, Unset):
@@ -48,6 +48,7 @@ class RequestResponseSamplesItemEntity:
48
48
  _registration_origin: Union[Unset, None, RegistrationOrigin] = UNSET
49
49
  _registry_id: Union[Unset, None, str] = UNSET
50
50
  _schema: Union[Unset, None, SchemaSummary] = UNSET
51
+ _url: Union[Unset, str] = UNSET
51
52
  _web_url: Union[Unset, str] = UNSET
52
53
  _annotations: Union[Unset, List[DnaAnnotation]] = UNSET
53
54
  _bases: Union[Unset, str] = UNSET
@@ -61,6 +62,7 @@ class RequestResponseSamplesItemEntity:
61
62
  _ingredients: Union[Unset, List[Ingredient]] = UNSET
62
63
  _units: Union[Unset, MixtureMeasurementUnits] = UNSET
63
64
  _amino_acids: Union[Unset, str] = UNSET
65
+ _dna_alignment_ids: Union[Unset, List[str]] = UNSET
64
66
  _is_circular: Union[Unset, bool] = UNSET
65
67
  _parts: Union[Unset, List[DnaSequencePart]] = UNSET
66
68
  _primers: Union[Unset, List[Primer]] = UNSET
@@ -89,6 +91,7 @@ class RequestResponseSamplesItemEntity:
89
91
  fields.append("registration_origin={}".format(repr(self._registration_origin)))
90
92
  fields.append("registry_id={}".format(repr(self._registry_id)))
91
93
  fields.append("schema={}".format(repr(self._schema)))
94
+ fields.append("url={}".format(repr(self._url)))
92
95
  fields.append("web_url={}".format(repr(self._web_url)))
93
96
  fields.append("annotations={}".format(repr(self._annotations)))
94
97
  fields.append("bases={}".format(repr(self._bases)))
@@ -102,6 +105,7 @@ class RequestResponseSamplesItemEntity:
102
105
  fields.append("ingredients={}".format(repr(self._ingredients)))
103
106
  fields.append("units={}".format(repr(self._units)))
104
107
  fields.append("amino_acids={}".format(repr(self._amino_acids)))
108
+ fields.append("dna_alignment_ids={}".format(repr(self._dna_alignment_ids)))
105
109
  fields.append("is_circular={}".format(repr(self._is_circular)))
106
110
  fields.append("parts={}".format(repr(self._parts)))
107
111
  fields.append("primers={}".format(repr(self._primers)))
@@ -167,6 +171,7 @@ class RequestResponseSamplesItemEntity:
167
171
  if not isinstance(self._schema, Unset):
168
172
  schema = self._schema.to_dict() if self._schema else None
169
173
 
174
+ url = self._url
170
175
  web_url = self._web_url
171
176
  annotations: Union[Unset, List[Any]] = UNSET
172
177
  if not isinstance(self._annotations, Unset):
@@ -200,6 +205,10 @@ class RequestResponseSamplesItemEntity:
200
205
  units = self._units.value
201
206
 
202
207
  amino_acids = self._amino_acids
208
+ dna_alignment_ids: Union[Unset, List[Any]] = UNSET
209
+ if not isinstance(self._dna_alignment_ids, Unset):
210
+ dna_alignment_ids = self._dna_alignment_ids
211
+
203
212
  is_circular = self._is_circular
204
213
  parts: Union[Unset, List[Any]] = UNSET
205
214
  if not isinstance(self._parts, Unset):
@@ -274,6 +283,8 @@ class RequestResponseSamplesItemEntity:
274
283
  field_dict["registryId"] = registry_id
275
284
  if schema is not UNSET:
276
285
  field_dict["schema"] = schema
286
+ if url is not UNSET:
287
+ field_dict["url"] = url
277
288
  if web_url is not UNSET:
278
289
  field_dict["webURL"] = web_url
279
290
  if annotations is not UNSET:
@@ -300,6 +311,8 @@ class RequestResponseSamplesItemEntity:
300
311
  field_dict["units"] = units
301
312
  if amino_acids is not UNSET:
302
313
  field_dict["aminoAcids"] = amino_acids
314
+ if dna_alignment_ids is not UNSET:
315
+ field_dict["dnaAlignmentIds"] = dna_alignment_ids
303
316
  if is_circular is not UNSET:
304
317
  field_dict["isCircular"] = is_circular
305
318
  if parts is not UNSET:
@@ -578,6 +591,17 @@ class RequestResponseSamplesItemEntity:
578
591
  raise
579
592
  schema = cast(Union[Unset, None, SchemaSummary], UNSET)
580
593
 
594
+ def get_url() -> Union[Unset, str]:
595
+ url = d.pop("url")
596
+ return url
597
+
598
+ try:
599
+ url = get_url()
600
+ except KeyError:
601
+ if strict:
602
+ raise
603
+ url = cast(Union[Unset, str], UNSET)
604
+
581
605
  def get_web_url() -> Union[Unset, str]:
582
606
  web_url = d.pop("webURL")
583
607
  return web_url
@@ -747,6 +771,18 @@ class RequestResponseSamplesItemEntity:
747
771
  raise
748
772
  amino_acids = cast(Union[Unset, str], UNSET)
749
773
 
774
+ def get_dna_alignment_ids() -> Union[Unset, List[str]]:
775
+ dna_alignment_ids = cast(List[str], d.pop("dnaAlignmentIds"))
776
+
777
+ return dna_alignment_ids
778
+
779
+ try:
780
+ dna_alignment_ids = get_dna_alignment_ids()
781
+ except KeyError:
782
+ if strict:
783
+ raise
784
+ dna_alignment_ids = cast(Union[Unset, List[str]], UNSET)
785
+
750
786
  def get_is_circular() -> Union[Unset, bool]:
751
787
  is_circular = d.pop("isCircular")
752
788
  return is_circular
@@ -848,6 +884,7 @@ class RequestResponseSamplesItemEntity:
848
884
  registration_origin=registration_origin,
849
885
  registry_id=registry_id,
850
886
  schema=schema,
887
+ url=url,
851
888
  web_url=web_url,
852
889
  annotations=annotations,
853
890
  bases=bases,
@@ -861,6 +898,7 @@ class RequestResponseSamplesItemEntity:
861
898
  ingredients=ingredients,
862
899
  units=units,
863
900
  amino_acids=amino_acids,
901
+ dna_alignment_ids=dna_alignment_ids,
864
902
  is_circular=is_circular,
865
903
  parts=parts,
866
904
  primers=primers,
@@ -1158,6 +1196,21 @@ class RequestResponseSamplesItemEntity:
1158
1196
  def schema(self) -> None:
1159
1197
  self._schema = UNSET
1160
1198
 
1199
+ @property
1200
+ def url(self) -> str:
1201
+ """ The path of the web URL, omitting the tenant domain """
1202
+ if isinstance(self._url, Unset):
1203
+ raise NotPresentError(self, "url")
1204
+ return self._url
1205
+
1206
+ @url.setter
1207
+ def url(self, value: str) -> None:
1208
+ self._url = value
1209
+
1210
+ @url.deleter
1211
+ def url(self) -> None:
1212
+ self._url = UNSET
1213
+
1161
1214
  @property
1162
1215
  def web_url(self) -> str:
1163
1216
  if isinstance(self._web_url, Unset):
@@ -1348,6 +1401,21 @@ class RequestResponseSamplesItemEntity:
1348
1401
  def amino_acids(self) -> None:
1349
1402
  self._amino_acids = UNSET
1350
1403
 
1404
+ @property
1405
+ def dna_alignment_ids(self) -> List[str]:
1406
+ """ API IDs of Nucleotide Alignments involving the RNA sequence """
1407
+ if isinstance(self._dna_alignment_ids, Unset):
1408
+ raise NotPresentError(self, "dna_alignment_ids")
1409
+ return self._dna_alignment_ids
1410
+
1411
+ @dna_alignment_ids.setter
1412
+ def dna_alignment_ids(self, value: List[str]) -> None:
1413
+ self._dna_alignment_ids = value
1414
+
1415
+ @dna_alignment_ids.deleter
1416
+ def dna_alignment_ids(self) -> None:
1417
+ self._dna_alignment_ids = UNSET
1418
+
1351
1419
  @property
1352
1420
  def is_circular(self) -> bool:
1353
1421
  if isinstance(self._is_circular, Unset):
@@ -25,6 +25,7 @@ class RnaSequence:
25
25
  """ """
26
26
 
27
27
  _aliases: Union[Unset, List[str]] = UNSET
28
+ _alignment_ids: Union[Unset, List[str]] = UNSET
28
29
  _annotations: Union[Unset, List[RnaAnnotation]] = UNSET
29
30
  _api_url: Union[Unset, str] = UNSET
30
31
  _archive_record: Union[Unset, None, ArchiveRecord] = UNSET
@@ -50,12 +51,14 @@ class RnaSequence:
50
51
  _registry_id: Union[Unset, None, str] = UNSET
51
52
  _schema: Union[Unset, None, SchemaSummary] = UNSET
52
53
  _translations: Union[Unset, List[Translation]] = UNSET
54
+ _url: Union[Unset, str] = UNSET
53
55
  _web_url: Union[Unset, str] = UNSET
54
56
  additional_properties: Dict[str, Any] = attr.ib(init=False, factory=dict)
55
57
 
56
58
  def __repr__(self):
57
59
  fields = []
58
60
  fields.append("aliases={}".format(repr(self._aliases)))
61
+ fields.append("alignment_ids={}".format(repr(self._alignment_ids)))
59
62
  fields.append("annotations={}".format(repr(self._annotations)))
60
63
  fields.append("api_url={}".format(repr(self._api_url)))
61
64
  fields.append("archive_record={}".format(repr(self._archive_record)))
@@ -81,6 +84,7 @@ class RnaSequence:
81
84
  fields.append("registry_id={}".format(repr(self._registry_id)))
82
85
  fields.append("schema={}".format(repr(self._schema)))
83
86
  fields.append("translations={}".format(repr(self._translations)))
87
+ fields.append("url={}".format(repr(self._url)))
84
88
  fields.append("web_url={}".format(repr(self._web_url)))
85
89
  fields.append("additional_properties={}".format(repr(self.additional_properties)))
86
90
  return "RnaSequence({})".format(", ".join(fields))
@@ -90,6 +94,10 @@ class RnaSequence:
90
94
  if not isinstance(self._aliases, Unset):
91
95
  aliases = self._aliases
92
96
 
97
+ alignment_ids: Union[Unset, List[Any]] = UNSET
98
+ if not isinstance(self._alignment_ids, Unset):
99
+ alignment_ids = self._alignment_ids
100
+
93
101
  annotations: Union[Unset, List[Any]] = UNSET
94
102
  if not isinstance(self._annotations, Unset):
95
103
  annotations = []
@@ -174,6 +182,7 @@ class RnaSequence:
174
182
 
175
183
  translations.append(translations_item)
176
184
 
185
+ url = self._url
177
186
  web_url = self._web_url
178
187
 
179
188
  field_dict: Dict[str, Any] = {}
@@ -181,6 +190,8 @@ class RnaSequence:
181
190
  # Allow the model to serialize even if it was created outside of the constructor, circumventing validation
182
191
  if aliases is not UNSET:
183
192
  field_dict["aliases"] = aliases
193
+ if alignment_ids is not UNSET:
194
+ field_dict["alignmentIds"] = alignment_ids
184
195
  if annotations is not UNSET:
185
196
  field_dict["annotations"] = annotations
186
197
  if api_url is not UNSET:
@@ -231,6 +242,8 @@ class RnaSequence:
231
242
  field_dict["schema"] = schema
232
243
  if translations is not UNSET:
233
244
  field_dict["translations"] = translations
245
+ if url is not UNSET:
246
+ field_dict["url"] = url
234
247
  if web_url is not UNSET:
235
248
  field_dict["webURL"] = web_url
236
249
 
@@ -252,6 +265,18 @@ class RnaSequence:
252
265
  raise
253
266
  aliases = cast(Union[Unset, List[str]], UNSET)
254
267
 
268
+ def get_alignment_ids() -> Union[Unset, List[str]]:
269
+ alignment_ids = cast(List[str], d.pop("alignmentIds"))
270
+
271
+ return alignment_ids
272
+
273
+ try:
274
+ alignment_ids = get_alignment_ids()
275
+ except KeyError:
276
+ if strict:
277
+ raise
278
+ alignment_ids = cast(Union[Unset, List[str]], UNSET)
279
+
255
280
  def get_annotations() -> Union[Unset, List[RnaAnnotation]]:
256
281
  annotations = []
257
282
  _annotations = d.pop("annotations")
@@ -595,6 +620,17 @@ class RnaSequence:
595
620
  raise
596
621
  translations = cast(Union[Unset, List[Translation]], UNSET)
597
622
 
623
+ def get_url() -> Union[Unset, str]:
624
+ url = d.pop("url")
625
+ return url
626
+
627
+ try:
628
+ url = get_url()
629
+ except KeyError:
630
+ if strict:
631
+ raise
632
+ url = cast(Union[Unset, str], UNSET)
633
+
598
634
  def get_web_url() -> Union[Unset, str]:
599
635
  web_url = d.pop("webURL")
600
636
  return web_url
@@ -608,6 +644,7 @@ class RnaSequence:
608
644
 
609
645
  rna_sequence = cls(
610
646
  aliases=aliases,
647
+ alignment_ids=alignment_ids,
611
648
  annotations=annotations,
612
649
  api_url=api_url,
613
650
  archive_record=archive_record,
@@ -633,6 +670,7 @@ class RnaSequence:
633
670
  registry_id=registry_id,
634
671
  schema=schema,
635
672
  translations=translations,
673
+ url=url,
636
674
  web_url=web_url,
637
675
  )
638
676
 
@@ -672,6 +710,21 @@ class RnaSequence:
672
710
  def aliases(self) -> None:
673
711
  self._aliases = UNSET
674
712
 
713
+ @property
714
+ def alignment_ids(self) -> List[str]:
715
+ """ API IDs of Nucleotide Alignments involving the RNA sequence """
716
+ if isinstance(self._alignment_ids, Unset):
717
+ raise NotPresentError(self, "alignment_ids")
718
+ return self._alignment_ids
719
+
720
+ @alignment_ids.setter
721
+ def alignment_ids(self, value: List[str]) -> None:
722
+ self._alignment_ids = value
723
+
724
+ @alignment_ids.deleter
725
+ def alignment_ids(self) -> None:
726
+ self._alignment_ids = UNSET
727
+
675
728
  @property
676
729
  def annotations(self) -> List[RnaAnnotation]:
677
730
  if isinstance(self._annotations, Unset):
@@ -1026,6 +1079,21 @@ class RnaSequence:
1026
1079
  def translations(self) -> None:
1027
1080
  self._translations = UNSET
1028
1081
 
1082
+ @property
1083
+ def url(self) -> str:
1084
+ """ The path of the web URL, omitting the tenant domain """
1085
+ if isinstance(self._url, Unset):
1086
+ raise NotPresentError(self, "url")
1087
+ return self._url
1088
+
1089
+ @url.setter
1090
+ def url(self, value: str) -> None:
1091
+ self._url = value
1092
+
1093
+ @url.deleter
1094
+ def url(self) -> None:
1095
+ self._url = UNSET
1096
+
1029
1097
  @property
1030
1098
  def web_url(self) -> str:
1031
1099
  if isinstance(self._web_url, Unset):