benchling-sdk 1.21.1__py3-none-any.whl → 1.22.0a0__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_sdk/apps/canvas/types.py +8 -0
  2. benchling_sdk/apps/config/framework.py +2 -2
  3. benchling_sdk/apps/config/helpers.py +6 -5
  4. benchling_sdk/apps/config/mock_config.py +4 -4
  5. benchling_sdk/apps/helpers/webhook_helpers.py +2 -2
  6. benchling_sdk/apps/status/framework.py +5 -5
  7. benchling_sdk/apps/status/helpers.py +2 -0
  8. benchling_sdk/auth/client_credentials_oauth2.py +5 -4
  9. benchling_sdk/benchling.py +90 -14
  10. benchling_sdk/errors.py +4 -3
  11. benchling_sdk/helpers/retry_helpers.py +1 -1
  12. benchling_sdk/helpers/serialization_helpers.py +6 -3
  13. benchling_sdk/helpers/task_helpers.py +12 -9
  14. benchling_sdk/models/__init__.py +1325 -329
  15. benchling_sdk/models/webhooks/v0/__init__.py +12 -4
  16. benchling_sdk/services/v2/base_service.py +5 -4
  17. benchling_sdk/services/v2/beta/v2_beta_data_frame_service.py +16 -8
  18. benchling_sdk/services/v2/stable/aa_sequence_service.py +4 -0
  19. benchling_sdk/services/v2/{beta/v2_beta_audit_service.py → stable/audit_service.py} +6 -6
  20. benchling_sdk/services/v2/stable/blob_service.py +6 -3
  21. benchling_sdk/services/v2/stable/box_service.py +4 -0
  22. benchling_sdk/services/v2/stable/connect_service.py +79 -0
  23. benchling_sdk/services/v2/stable/container_service.py +4 -0
  24. benchling_sdk/services/v2/stable/custom_entity_service.py +4 -0
  25. benchling_sdk/services/v2/stable/data_frame_service.py +323 -0
  26. benchling_sdk/services/v2/stable/dataset_service.py +132 -0
  27. benchling_sdk/services/v2/stable/dna_oligo_service.py +4 -0
  28. benchling_sdk/services/v2/stable/dna_sequence_service.py +4 -0
  29. benchling_sdk/services/v2/stable/file_service.py +131 -0
  30. benchling_sdk/services/v2/stable/{request_service.py → legacy_request_service.py} +25 -25
  31. benchling_sdk/services/v2/stable/location_service.py +4 -0
  32. benchling_sdk/services/v2/stable/mixture_service.py +4 -0
  33. benchling_sdk/services/v2/stable/molecule_service.py +4 -0
  34. benchling_sdk/services/v2/stable/nucleotide_alignments_service.py +4 -0
  35. benchling_sdk/services/v2/stable/organization_service.py +10 -5
  36. benchling_sdk/services/v2/stable/plate_service.py +4 -0
  37. benchling_sdk/services/v2/stable/rna_oligo_service.py +4 -0
  38. benchling_sdk/services/v2/stable/rna_sequence_service.py +4 -0
  39. benchling_sdk/services/v2/stable/task_service.py +1 -7
  40. benchling_sdk/services/v2/stable/team_service.py +14 -7
  41. benchling_sdk/services/v2/stable/test_order_service.py +145 -0
  42. benchling_sdk/services/v2/v2_alpha_service.py +2 -2
  43. benchling_sdk/services/v2/v2_beta_service.py +2 -16
  44. benchling_sdk/services/v2/v2_stable_service.py +104 -17
  45. benchling_sdk/services/v2_service.py +1 -1
  46. {benchling_sdk-1.21.1.dist-info → benchling_sdk-1.22.0a0.dist-info}/METADATA +3 -2
  47. {benchling_sdk-1.21.1.dist-info → benchling_sdk-1.22.0a0.dist-info}/RECORD +49 -44
  48. {benchling_sdk-1.21.1.dist-info → benchling_sdk-1.22.0a0.dist-info}/LICENSE +0 -0
  49. {benchling_sdk-1.21.1.dist-info → benchling_sdk-1.22.0a0.dist-info}/WHEEL +0 -0
@@ -350,8 +350,12 @@ if TYPE_CHECKING:
350
350
  LifecycleDeactivateWebhookV0Type = (
351
351
  benchling_api_client.webhooks.v0.stable.models.lifecycle_deactivate_webhook_v0_type.LifecycleDeactivateWebhookV0Type
352
352
  )
353
- MessageBase = benchling_api_client.webhooks.v0.stable.models.message_base.MessageBase
354
- MessageBaseV0 = benchling_api_client.webhooks.v0.stable.models.message_base_v0.MessageBaseV0
353
+ MessageBase = (
354
+ benchling_api_client.webhooks.v0.stable.models.message_base.MessageBase
355
+ )
356
+ MessageBaseV0 = (
357
+ benchling_api_client.webhooks.v0.stable.models.message_base_v0.MessageBaseV0
358
+ )
355
359
  RequestCreatedWebhookV2 = (
356
360
  benchling_api_client.webhooks.v0.stable.models.request_created_webhook_v2.RequestCreatedWebhookV2
357
361
  )
@@ -484,7 +488,9 @@ if TYPE_CHECKING:
484
488
  V2WorkflowTaskUpdatedStatusEventEventType = (
485
489
  benchling_api_client.webhooks.v0.stable.models.v2_workflow_task_updated_status_event_event_type.V2WorkflowTaskUpdatedStatusEventEventType
486
490
  )
487
- WebhookEnvelopeV0 = benchling_api_client.webhooks.v0.stable.models.webhook_envelope_v0.WebhookEnvelopeV0
491
+ WebhookEnvelopeV0 = (
492
+ benchling_api_client.webhooks.v0.stable.models.webhook_envelope_v0.WebhookEnvelopeV0
493
+ )
488
494
  WebhookEnvelopeV0App = (
489
495
  benchling_api_client.webhooks.v0.stable.models.webhook_envelope_v0_app.WebhookEnvelopeV0App
490
496
  )
@@ -494,7 +500,9 @@ if TYPE_CHECKING:
494
500
  WebhookEnvelopeV0Version = (
495
501
  benchling_api_client.webhooks.v0.stable.models.webhook_envelope_v0_version.WebhookEnvelopeV0Version
496
502
  )
497
- WebhookMessageV0 = benchling_api_client.webhooks.v0.stable.models.webhook_message_v0.WebhookMessageV0
503
+ WebhookMessageV0 = (
504
+ benchling_api_client.webhooks.v0.stable.models.webhook_message_v0.WebhookMessageV0
505
+ )
498
506
  WorkflowOutputCreatedWebhookV2 = (
499
507
  benchling_api_client.webhooks.v0.stable.models.workflow_output_created_webhook_v2.WorkflowOutputCreatedWebhookV2
500
508
  )
@@ -1,5 +1,5 @@
1
1
  from abc import ABC
2
- from typing import Type, TYPE_CHECKING
2
+ from typing import Optional, Type, TYPE_CHECKING
3
3
 
4
4
  from benchling_api_client.v2.stable.client import Client
5
5
  from benchling_api_client.v2.types import Response
@@ -17,7 +17,7 @@ class BaseService(ABC):
17
17
  _client: Client
18
18
  _retry_strategy: RetryStrategy
19
19
 
20
- def __init__(self, client: Client, retry_strategy: RetryStrategy = RetryStrategy()):
20
+ def __init__(self, client: Client, retry_strategy: Optional[RetryStrategy] = None):
21
21
  """
22
22
  Initialize a service.
23
23
 
@@ -25,7 +25,7 @@ class BaseService(ABC):
25
25
  :param retry_strategy: Retry strategy for failed HTTP calls
26
26
  """
27
27
  self._client = client
28
- self._retry_strategy = retry_strategy
28
+ self._retry_strategy = retry_strategy or RetryStrategy()
29
29
 
30
30
  @property
31
31
  def client(self) -> Client:
@@ -38,7 +38,8 @@ class BaseService(ABC):
38
38
  return self._retry_strategy
39
39
 
40
40
  def _create_service(self, cls):
41
- """Instantiate a service that derives from BaseService, with the same properties as this service.
41
+ """
42
+ Instantiate a service that derives from BaseService, with the same properties as this service.
42
43
 
43
44
  Override this in alpha and beta services that use a client other than self._client.
44
45
  """
@@ -72,7 +72,8 @@ class V2BetaDataFrameService(BaseService):
72
72
  input_bytes: Union[BytesIO, bytes],
73
73
  timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME,
74
74
  ) -> None:
75
- """Upload bytes to an existing data frame.
75
+ """
76
+ Upload bytes to an existing data frame.
76
77
 
77
78
  :param url: The url provided by Benchling for uploading to the data frame
78
79
  :param input_bytes: Data to upload as bytes or BytesIO
@@ -90,7 +91,8 @@ class V2BetaDataFrameService(BaseService):
90
91
  def upload_file(
91
92
  self, url: str, file: Path, timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME
92
93
  ) -> None:
93
- """Upload a file to an existing data frame.
94
+ """
95
+ Upload a file to an existing data frame.
94
96
 
95
97
  :param url: The url provided by Benchling for uploading to the data frame
96
98
  :param file: A valid Path to an existing file containing the data to upload
@@ -115,7 +117,8 @@ class V2BetaDataFrameService(BaseService):
115
117
  input_bytes: Union[BytesIO, bytes],
116
118
  timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME,
117
119
  ) -> TaskHelper[DataFrame]:
118
- """Create a data frame from bytes or BytesIO data.
120
+ """
121
+ Create a data frame from bytes or BytesIO data.
119
122
 
120
123
  :param data_frame: The DataFrameCreate specification for the data. This must be provided, as it cannot be inferred from file names.
121
124
  :param input_bytes: Data to upload as bytes or BytesIO
@@ -151,7 +154,8 @@ class V2BetaDataFrameService(BaseService):
151
154
  data_frame: Optional[DataFrameCreate] = None,
152
155
  timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME,
153
156
  ) -> TaskHelper[DataFrame]:
154
- """Create a data frame from file data.
157
+ """
158
+ Create a data frame from file data.
155
159
 
156
160
  :param file: A valid Path to an existing file containing the data to upload
157
161
  :param data_frame: The DataFrameCreate specification for the data. If not provided, it will be inferred from the file name
@@ -178,7 +182,8 @@ class V2BetaDataFrameService(BaseService):
178
182
  def download_data_frame_bytes(
179
183
  self, data_frame: DataFrame, timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME
180
184
  ) -> List[BytesIO]:
181
- """Download data frame data to bytes.
185
+ """
186
+ Download data frame data to bytes.
182
187
 
183
188
  :param data_frame: The data frame to download
184
189
  :param timeout_seconds: Extends the normal HTTP timeout settings since DataFrame uploads can be large
@@ -211,7 +216,8 @@ class V2BetaDataFrameService(BaseService):
211
216
  destination_path: Optional[Path] = None,
212
217
  timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME,
213
218
  ) -> List[Path]:
214
- """Download data frame data to files.
219
+ """
220
+ Download data frame data to files.
215
221
 
216
222
  :param data_frame: The data frame to download
217
223
  :param destination_path: A target directory to place the files. File names will be created based on the manifest item file names.
@@ -252,7 +258,8 @@ class V2BetaDataFrameService(BaseService):
252
258
  def download_data_frame_bytes_by_id(
253
259
  self, data_frame_id: str, timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME
254
260
  ) -> List[BytesIO]:
255
- """Download data frame data to files by data_frame_id.
261
+ """
262
+ Download data frame data to files by data_frame_id.
256
263
 
257
264
  Fetches the data frame first, then downloads the files.
258
265
 
@@ -272,7 +279,8 @@ class V2BetaDataFrameService(BaseService):
272
279
  destination_path: Optional[Path] = None,
273
280
  timeout_seconds: float = _DEFAULT_HTTP_TIMEOUT_UPLOAD_DATA_FRAME,
274
281
  ) -> List[Path]:
275
- """Download data frame data to files by data_frame_id.
282
+ """
283
+ Download data frame data to files by data_frame_id.
276
284
 
277
285
  Fetches the data frame first, then downloads the files.
278
286
 
@@ -93,6 +93,7 @@ class AaSequenceService(BaseService):
93
93
  def _aa_sequences_page(
94
94
  self,
95
95
  modified_at: Optional[str] = None,
96
+ created_at: Optional[str] = None,
96
97
  name: Optional[str] = None,
97
98
  amino_acids: Optional[str] = None,
98
99
  folder_id: Optional[str] = None,
@@ -118,6 +119,7 @@ class AaSequenceService(BaseService):
118
119
  response = list_aa_sequences.sync_detailed(
119
120
  client=self.client,
120
121
  modified_at=none_as_unset(modified_at),
122
+ created_at=none_as_unset(created_at),
121
123
  name=none_as_unset(name),
122
124
  amino_acids=none_as_unset(amino_acids),
123
125
  folder_id=none_as_unset(folder_id),
@@ -145,6 +147,7 @@ class AaSequenceService(BaseService):
145
147
  def list(
146
148
  self,
147
149
  modified_at: Optional[str] = None,
150
+ created_at: Optional[str] = None,
148
151
  name: Optional[str] = None,
149
152
  amino_acids: Optional[str] = None,
150
153
  folder_id: Optional[str] = None,
@@ -177,6 +180,7 @@ class AaSequenceService(BaseService):
177
180
  def api_call(next_token: NextToken) -> Response[AaSequencesPaginatedList]:
178
181
  return self._aa_sequences_page(
179
182
  modified_at=modified_at,
183
+ created_at=created_at,
180
184
  name=name,
181
185
  amino_acids=amino_acids,
182
186
  folder_id=folder_id,
@@ -1,5 +1,5 @@
1
- from benchling_api_client.v2.beta.api.audit import audit_log
2
- from benchling_api_client.v2.beta.models.audit_log_export import AuditLogExport
1
+ from benchling_api_client.v2.stable.api.audit import audit_log
2
+ from benchling_api_client.v2.stable.models.audit_log_export import AuditLogExport
3
3
 
4
4
  from benchling_sdk.helpers.decorators import api_method
5
5
  from benchling_sdk.helpers.task_helpers import TaskHelper
@@ -7,13 +7,13 @@ from benchling_sdk.models import ExportAuditLogAsyncTaskResponse
7
7
  from benchling_sdk.services.v2.base_service import BaseService
8
8
 
9
9
 
10
- class V2BetaAuditService(BaseService):
10
+ class AuditService(BaseService):
11
11
  """
12
- V2-Beta Audit Service.
12
+ Audit Service.
13
13
 
14
14
  Export audit log data for Benchling objects.
15
15
 
16
- https://benchling.com/api/v2-beta/reference#/Audit
16
+ https://benchling.com/api/reference#/Audit
17
17
  """
18
18
 
19
19
  @api_method
@@ -36,7 +36,7 @@ class V2BetaAuditService(BaseService):
36
36
  Example of submitting an export request and then getting the download URL from
37
37
  the completed task:
38
38
 
39
- task = benchling.v2.beta.audit.get_audit_log(object_id, export)
39
+ task = benchling.v2.stable.audit.get_audit_log(object_id, export)
40
40
  task_result = task.wait_for_response()
41
41
  url = task_result.download_url
42
42
 
@@ -46,7 +46,8 @@ DEFAULT_CHUNK_SIZE_BYTES: int = MINIMUM_CHUNK_SIZE_BYTES
46
46
 
47
47
 
48
48
  def _write_blob_file(file_contents: BytesIO, file_path: Optional[Path] = None) -> Path:
49
- """Write bytes to a file. Will create a temp file if file_path isn't specified.
49
+ """
50
+ Write bytes to a file. Will create a temp file if file_path isn't specified.
50
51
 
51
52
  Returns the Path of the file written to, whether created or used.
52
53
  """
@@ -114,7 +115,8 @@ class BlobService(BaseService):
114
115
  timeout_seconds: float = DEFAULT_HTTP_TIMEOUT,
115
116
  chunk_size_bytes: int = DEFAULT_CHUNK_SIZE_BYTES,
116
117
  ) -> Blob:
117
- """Create a Benchling Blob from bytes or a BytesIO stream.
118
+ """
119
+ Create a Benchling Blob from bytes or a BytesIO stream.
118
120
 
119
121
  Will automatically attempt a multi-part upload if the stream appears larger
120
122
  than the API's maximum size for single Blobs.
@@ -172,7 +174,8 @@ class BlobService(BaseService):
172
174
  timeout_seconds: float = DEFAULT_HTTP_TIMEOUT,
173
175
  chunk_size_bytes: int = DEFAULT_CHUNK_SIZE_BYTES,
174
176
  ) -> Blob:
175
- """Create a Benchling Blob from a file.
177
+ """
178
+ Create a Benchling Blob from a file.
176
179
 
177
180
  Will automatically attempt a multi-part upload if the file appears larger
178
181
  than the API's maximum size for single Blobs.
@@ -71,6 +71,7 @@ class BoxService(BaseService):
71
71
  sort: Optional[ListBoxesSort] = None,
72
72
  schema_id: Optional[str] = None,
73
73
  modified_at: Optional[str] = None,
74
+ created_at: Optional[str] = None,
74
75
  name: Optional[str] = None,
75
76
  name_includes: Optional[str] = None,
76
77
  ancestor_storage_id: Optional[str] = None,
@@ -99,6 +100,7 @@ class BoxService(BaseService):
99
100
  sort=none_as_unset(sort),
100
101
  schema_id=none_as_unset(schema_id),
101
102
  modified_at=none_as_unset(modified_at),
103
+ created_at=none_as_unset(created_at),
102
104
  name=none_as_unset(name),
103
105
  name_includes=none_as_unset(name_includes),
104
106
  ancestor_storage_id=none_as_unset(ancestor_storage_id),
@@ -133,6 +135,7 @@ class BoxService(BaseService):
133
135
  sort: Optional[Union[str, ListBoxesSort]] = None,
134
136
  schema_id: Optional[str] = None,
135
137
  modified_at: Optional[str] = None,
138
+ created_at: Optional[str] = None,
136
139
  name: Optional[str] = None,
137
140
  name_includes: Optional[str] = None,
138
141
  ancestor_storage_id: Optional[str] = None,
@@ -169,6 +172,7 @@ class BoxService(BaseService):
169
172
  sort=_translate_to_string_enum(ListBoxesSort, sort),
170
173
  schema_id=schema_id,
171
174
  modified_at=modified_at,
175
+ created_at=created_at,
172
176
  name=name,
173
177
  name_includes=name_includes,
174
178
  ancestor_storage_id=ancestor_storage_id,
@@ -0,0 +1,79 @@
1
+ from typing import List
2
+
3
+ from benchling_api_client.v2.stable.api.connect import (
4
+ convert_to_asm as api_client_convert_to_asm,
5
+ convert_to_csv as api_client_convert_to_csv,
6
+ list_allotropy_vendors as api_client_list_allotropy_vendors,
7
+ )
8
+ from benchling_api_client.v2.stable.models.convert_to_asm import ConvertToASM
9
+ from benchling_api_client.v2.stable.models.convert_to_asm_response_200 import ConvertToASMResponse_200
10
+ from benchling_api_client.v2.stable.models.convert_to_csv import ConvertToCSV
11
+ from benchling_api_client.v2.stable.models.convert_to_csv_response_200_item import (
12
+ ConvertToCSVResponse_200Item,
13
+ )
14
+
15
+ from benchling_sdk.errors import raise_for_status
16
+ from benchling_sdk.helpers.decorators import api_method
17
+ from benchling_sdk.helpers.response_helpers import model_from_detailed
18
+ from benchling_sdk.services.v2.base_service import BaseService
19
+
20
+
21
+ class ConnectService(BaseService):
22
+ """
23
+ Connect.
24
+
25
+ Connect endpoints support Benchling Connect actions, like instrument data conversion.
26
+
27
+ See https://benchling.com/api/reference#/Connect
28
+ """
29
+
30
+ @api_method
31
+ def convert_to_asm(self, file_info: ConvertToASM) -> ConvertToASMResponse_200:
32
+ """
33
+ Convert an input blob or file containing instrument data to ASM (Allotrope Simple Model) JSON.
34
+
35
+ May provide the name of the instrument vendor (see /connect/list-allotropy-vendors) or the ID of a
36
+ connection associated with an instrument vendor.
37
+
38
+ See https://benchling.com/api/reference#/Connect/convertToASM
39
+ """
40
+ response = api_client_convert_to_asm.sync_detailed(client=self.client, json_body=file_info)
41
+ response = raise_for_status(response)
42
+ return model_from_detailed(response)
43
+
44
+ @api_method
45
+ def convert_to_csv(self, file_info: ConvertToCSV) -> List[ConvertToCSVResponse_200Item]:
46
+ """
47
+ Convert a blob or file containing ASM, JSON, or instrument data to CSV.
48
+
49
+ If the file is ASM JSON, specify either no transform type (in which case all transform types will be
50
+ returned), a matching transform type for the ASM schema, or a custom JSON mapper config.
51
+
52
+ If the file non-ASM JSON, must provide a JSON mapper config argument, which specifies how to map the
53
+ JSON to CSV. Reach out to Benchling Support for more information about how to create a JSON mapper
54
+ config.
55
+
56
+ If the file is an instrument file, must also specify an instrument vendor. The file will be converted
57
+ first to ASM JSON and then to CSV. Only the CSV output will be returned.
58
+
59
+ May provide an AutomationOutputFile with CSV transform arguments configured to read the transform type
60
+ or mapper config from.
61
+
62
+ May provide a connection ID associated with an instrument to read the vendor from.
63
+
64
+ See https://benchling.com/api/reference#/Connect/convertToCSV
65
+ """
66
+ response = api_client_convert_to_csv.sync_detailed(client=self.client, json_body=file_info)
67
+ response = raise_for_status(response)
68
+ return model_from_detailed(response)
69
+
70
+ @api_method
71
+ def list_allotropy_vendors(self) -> List[None]:
72
+ """
73
+ Return the list of available allotropy instrument vendor types.
74
+
75
+ See https://benchling.com/api/reference#/Connect/listAllotropyVendors
76
+ """
77
+ response = api_client_list_allotropy_vendors.sync_detailed(client=self.client)
78
+ response = raise_for_status(response)
79
+ return model_from_detailed(response)
@@ -104,6 +104,7 @@ class ContainerService(BaseService):
104
104
  sort: Optional[ListContainersSort] = None,
105
105
  schema_id: Optional[str] = None,
106
106
  modified_at: Optional[str] = None,
107
+ created_at: Optional[str] = None,
107
108
  name: Optional[str] = None,
108
109
  name_includes: Optional[str] = None,
109
110
  ancestor_storage_id: Optional[str] = None,
@@ -132,6 +133,7 @@ class ContainerService(BaseService):
132
133
  sort=none_as_unset(sort),
133
134
  schema_id=none_as_unset(schema_id),
134
135
  modified_at=none_as_unset(modified_at),
136
+ created_at=none_as_unset(created_at),
135
137
  name=none_as_unset(name),
136
138
  name_includes=none_as_unset(name_includes),
137
139
  ancestor_storage_id=none_as_unset(ancestor_storage_id),
@@ -174,6 +176,7 @@ class ContainerService(BaseService):
174
176
  sort: Optional[Union[str, ListContainersSort]] = None,
175
177
  schema_id: Optional[str] = None,
176
178
  modified_at: Optional[str] = None,
179
+ created_at: Optional[str] = None,
177
180
  name: Optional[str] = None,
178
181
  name_includes: Optional[str] = None,
179
182
  ancestor_storage_id: Optional[str] = None,
@@ -210,6 +213,7 @@ class ContainerService(BaseService):
210
213
  sort=_translate_to_string_enum(ListContainersSort, sort),
211
214
  schema_id=schema_id,
212
215
  modified_at=modified_at,
216
+ created_at=created_at,
213
217
  name=name,
214
218
  name_includes=name_includes,
215
219
  ancestor_storage_id=ancestor_storage_id,
@@ -77,6 +77,7 @@ class CustomEntityService(BaseService):
77
77
  self,
78
78
  schema_id: Optional[str] = None,
79
79
  modified_at: Optional[str] = None,
80
+ created_at: Optional[str] = None,
80
81
  name: Optional[str] = None,
81
82
  name_includes: Optional[str] = None,
82
83
  folder_id: Optional[str] = None,
@@ -101,6 +102,7 @@ class CustomEntityService(BaseService):
101
102
  client=self.client,
102
103
  schema_id=none_as_unset(schema_id),
103
104
  modified_at=none_as_unset(modified_at),
105
+ created_at=none_as_unset(created_at),
104
106
  name=none_as_unset(name),
105
107
  name_includes=none_as_unset(name_includes),
106
108
  folder_id=none_as_unset(folder_id),
@@ -128,6 +130,7 @@ class CustomEntityService(BaseService):
128
130
  self,
129
131
  schema_id: Optional[str] = None,
130
132
  modified_at: Optional[str] = None,
133
+ created_at: Optional[str] = None,
131
134
  name: Optional[str] = None,
132
135
  name_includes: Optional[str] = None,
133
136
  folder_id: Optional[str] = None,
@@ -162,6 +165,7 @@ class CustomEntityService(BaseService):
162
165
  return self._custom_entities_page(
163
166
  schema_id=schema_id,
164
167
  modified_at=modified_at,
168
+ created_at=created_at,
165
169
  name=name,
166
170
  name_includes=name_includes,
167
171
  folder_id=folder_id,