cognite-toolkit 0.7.44__py3-none-any.whl → 0.7.46__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 (192) hide show
  1. cognite_toolkit/_cdf_tk/apps/_download_app.py +1 -1
  2. cognite_toolkit/_cdf_tk/apps/_dump_app.py +1 -1
  3. cognite_toolkit/_cdf_tk/builders/_raw.py +1 -1
  4. cognite_toolkit/_cdf_tk/client/_toolkit_client.py +19 -3
  5. cognite_toolkit/_cdf_tk/client/api/assets.py +31 -19
  6. cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
  7. cognite_toolkit/_cdf_tk/client/api/events.py +32 -18
  8. cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
  9. cognite_toolkit/_cdf_tk/client/api/filemetadata.py +48 -17
  10. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
  11. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
  12. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
  13. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
  14. cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
  15. cognite_toolkit/_cdf_tk/client/api/infield.py +7 -7
  16. cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
  17. cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +2 -2
  18. cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
  19. cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
  20. cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
  21. cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
  22. cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
  23. cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
  24. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
  25. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
  26. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
  27. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
  28. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
  29. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
  30. cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
  31. cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
  32. cognite_toolkit/_cdf_tk/client/api/project.py +1 -1
  33. cognite_toolkit/_cdf_tk/client/api/raw.py +39 -9
  34. cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
  35. cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
  36. cognite_toolkit/_cdf_tk/client/api/simulator_models.py +45 -9
  37. cognite_toolkit/_cdf_tk/client/api/streams.py +1 -1
  38. cognite_toolkit/_cdf_tk/client/api/three_d.py +11 -11
  39. cognite_toolkit/_cdf_tk/client/api/timeseries.py +32 -18
  40. cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
  41. cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
  42. cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
  43. cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
  44. cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
  45. cognite_toolkit/_cdf_tk/client/cdf_client/api.py +105 -35
  46. cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +5 -7
  47. cognite_toolkit/_cdf_tk/client/http_client/_exception.py +10 -1
  48. cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
  49. cognite_toolkit/_cdf_tk/client/request_classes/filters.py +38 -0
  50. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/agent.py +1 -1
  51. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/annotation.py +1 -1
  52. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/asset.py +1 -1
  53. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_constraints.py +1 -1
  54. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_container.py +1 -1
  55. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_data_model.py +1 -1
  56. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_data_types.py +1 -1
  57. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_indexes.py +1 -1
  58. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_instance.py +1 -1
  59. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_references.py +1 -1
  60. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_space.py +1 -1
  61. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_view.py +1 -1
  62. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_view_property.py +1 -1
  63. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/dataset.py +1 -1
  64. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/event.py +1 -1
  65. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/extraction_pipeline.py +1 -1
  66. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/filemetadata.py +1 -1
  67. cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
  68. cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +61 -0
  69. cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
  70. cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
  71. cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
  72. cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
  73. cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
  74. cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +59 -0
  75. cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
  76. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_destination.py +1 -1
  77. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_job.py +1 -1
  78. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_mapping.py +1 -1
  79. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_auth.py +1 -1
  80. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_base.py +2 -2
  81. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_certificate.py +1 -1
  82. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_eventhub.py +1 -1
  83. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_kafka.py +1 -1
  84. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_mqtt.py +1 -1
  85. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_rest.py +1 -1
  86. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/identifiers.py +1 -1
  87. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/label.py +1 -1
  88. cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
  89. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +1 -1
  90. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
  91. cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +77 -0
  92. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/raw.py +1 -1
  93. cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +43 -0
  94. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
  95. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
  96. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
  97. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
  98. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
  99. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
  100. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +60 -0
  101. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +53 -0
  102. cognite_toolkit/_cdf_tk/client/resource_classes/search_config_resource.py +54 -0
  103. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/securitycategory.py +1 -1
  104. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/sequence.py +1 -1
  105. cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
  106. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/simulator_model.py +1 -1
  107. cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
  108. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +6 -5
  109. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/timeseries.py +1 -1
  110. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/transformation.py +1 -1
  111. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow.py +1 -1
  112. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow_trigger.py +1 -1
  113. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow_version.py +1 -1
  114. cognite_toolkit/_cdf_tk/client/testing.py +20 -2
  115. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +5 -5
  116. cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
  117. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +6 -6
  118. cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +6 -6
  119. cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
  120. cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +1 -1
  121. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +8 -8
  122. cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
  123. cognite_toolkit/_cdf_tk/commands/_purge.py +1 -1
  124. cognite_toolkit/_cdf_tk/commands/build_cmd.py +1 -1
  125. cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
  126. cognite_toolkit/_cdf_tk/commands/run.py +1 -1
  127. cognite_toolkit/_cdf_tk/cruds/__init__.py +5 -1
  128. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +3 -3
  129. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +2 -0
  130. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +2 -2
  131. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +11 -27
  132. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
  133. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
  134. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
  135. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +4 -4
  136. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +7 -14
  137. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
  138. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
  139. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +2 -2
  140. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
  141. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
  142. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +1 -1
  143. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
  144. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +122 -0
  145. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +2 -2
  146. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +6 -13
  147. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
  148. cognite_toolkit/_cdf_tk/feature_flags.py +4 -0
  149. cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
  150. cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
  151. cognite_toolkit/_cdf_tk/storageio/_applications.py +3 -3
  152. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +21 -27
  153. cognite_toolkit/_cdf_tk/storageio/_file_content.py +2 -2
  154. cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
  155. cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
  156. cognite_toolkit/_cdf_tk/utils/interactive_select.py +5 -5
  157. cognite_toolkit/_cdf_tk/utils/useful_types2.py +3 -3
  158. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  159. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  160. cognite_toolkit/_resources/cdf.toml +1 -1
  161. cognite_toolkit/_version.py +1 -1
  162. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/METADATA +3 -3
  163. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/RECORD +192 -152
  164. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/WHEEL +2 -2
  165. /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
  166. /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
  167. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/base.py +0 -0
  168. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
  169. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +0 -0
  170. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/__init__.py +0 -0
  171. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/__init__.py +0 -0
  172. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +0 -0
  173. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +0 -0
  174. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
  175. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
  176. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
  177. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
  178. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
  179. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
  180. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
  181. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
  182. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
  183. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
  184. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
  185. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
  186. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
  187. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
  188. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
  189. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
  190. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
  191. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/three_d.py +0 -0
  192. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/entry_points.txt +0 -0
@@ -7,7 +7,7 @@ import typer
7
7
  from questionary import Choice
8
8
  from rich import print
9
9
 
10
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawTable
10
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawTable
11
11
  from cognite_toolkit._cdf_tk.commands import DownloadCommand
12
12
  from cognite_toolkit._cdf_tk.constants import DATA_DEFAULT_DIR
13
13
  from cognite_toolkit._cdf_tk.feature_flags import Flags
@@ -6,7 +6,7 @@ from cognite.client.data_classes import WorkflowVersionId
6
6
  from cognite.client.data_classes.data_modeling import DataModelId, ViewId
7
7
  from rich import print
8
8
 
9
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.search_config import ViewId as SearchConfigViewId
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.search_config import ViewId as SearchConfigViewId
10
10
  from cognite_toolkit._cdf_tk.commands import DumpResourceCommand
11
11
  from cognite_toolkit._cdf_tk.commands.dump_resource import (
12
12
  AgentFinder,
@@ -3,7 +3,7 @@ from collections.abc import Callable, Iterable, Sequence
3
3
  from typing import Any
4
4
 
5
5
  from cognite_toolkit._cdf_tk.builders import Builder
6
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase
6
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawDatabase
7
7
  from cognite_toolkit._cdf_tk.cruds import RawDatabaseCRUD, RawTableCRUD, ResourceCRUD
8
8
  from cognite_toolkit._cdf_tk.data_classes import (
9
9
  BuildDestinationFile,
@@ -15,20 +15,28 @@ from cognite_toolkit._cdf_tk.client.api.legacy.robotics import RoboticsAPI
15
15
  from cognite_toolkit._cdf_tk.client.http_client import HTTPClient
16
16
 
17
17
  from .api.assets import AssetsAPI
18
+ from .api.datasets import DataSetsAPI
18
19
  from .api.events import EventsAPI
20
+ from .api.extraction_pipelines import ExtractionPipelinesAPI
19
21
  from .api.filemetadata import FileMetadataAPI
22
+ from .api.hosted_extractors import HostedExtractorsAPI
20
23
  from .api.infield import InfieldAPI
24
+ from .api.labels import LabelsAPI
21
25
  from .api.lookup import LookUpGroup
22
26
  from .api.migration import MigrationAPI
23
27
  from .api.project import ProjectAPI
24
28
  from .api.raw import RawAPI
25
29
  from .api.search import SearchAPI
30
+ from .api.security_categories import SecurityCategoriesAPI
31
+ from .api.sequences import SequencesAPI
26
32
  from .api.simulators import SimulatorsAPI
27
33
  from .api.streams import StreamsAPI
28
34
  from .api.three_d import ThreeDAPI
29
35
  from .api.timeseries import TimeSeriesAPI
30
36
  from .api.token import TokenAPI
37
+ from .api.transformations import TransformationsAPI
31
38
  from .api.verify import VerifyAPI
39
+ from .api.workflows import WorkflowsAPI
32
40
  from .config import ToolkitClientConfig
33
41
 
34
42
 
@@ -37,13 +45,21 @@ class ToolAPI:
37
45
 
38
46
  def __init__(self, http_client: HTTPClient, console: Console) -> None:
39
47
  self.http_client = http_client
40
- self.three_d = ThreeDAPI(http_client, console)
41
48
  self.assets = AssetsAPI(http_client)
42
- self.timeseries = TimeSeriesAPI(http_client)
43
- self.filemetadata = FileMetadataAPI(http_client)
49
+ self.datasets = DataSetsAPI(http_client)
44
50
  self.events = EventsAPI(http_client)
51
+ self.extraction_pipelines = ExtractionPipelinesAPI(http_client)
52
+ self.hosted_extractors = HostedExtractorsAPI(http_client)
53
+ self.labels = LabelsAPI(http_client)
54
+ self.filemetadata = FileMetadataAPI(http_client)
45
55
  self.raw = RawAPI(http_client)
56
+ self.security_categories = SecurityCategoriesAPI(http_client)
57
+ self.sequences = SequencesAPI(http_client)
46
58
  self.simulators = SimulatorsAPI(http_client)
59
+ self.three_d = ThreeDAPI(http_client, console)
60
+ self.timeseries = TimeSeriesAPI(http_client)
61
+ self.transformations = TransformationsAPI(http_client)
62
+ self.workflows = WorkflowsAPI(http_client)
47
63
 
48
64
 
49
65
  class ToolkitClient(CogniteClient):
@@ -1,11 +1,12 @@
1
- from collections.abc import Sequence
2
- from typing import Any, Literal
1
+ from collections.abc import Iterable, Sequence
2
+ from typing import Literal
3
3
 
4
4
  from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
- from cognite_toolkit._cdf_tk.client.data_classes.asset import AssetRequest, AssetResponse
7
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
6
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
7
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.asset import AssetRequest, AssetResponse
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalOrExternalId
9
10
 
10
11
 
11
12
  class AssetsAPI(CDFResourceAPI[InternalOrExternalId, AssetRequest, AssetResponse]):
@@ -21,7 +22,9 @@ class AssetsAPI(CDFResourceAPI[InternalOrExternalId, AssetRequest, AssetResponse
21
22
  },
22
23
  )
23
24
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[AssetResponse]:
25
+ def _validate_page_response(
26
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
27
+ ) -> PagedResponse[AssetResponse]:
25
28
  return PagedResponse[AssetResponse].model_validate_json(response.body)
26
29
 
27
30
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -78,11 +81,10 @@ class AssetsAPI(CDFResourceAPI[InternalOrExternalId, AssetRequest, AssetResponse
78
81
  items, "delete", extra_body={"recursive": recursive, "ignoreUnknownIds": ignore_unknown_ids}
79
82
  )
80
83
 
81
- def iterate(
84
+ def paginate(
82
85
  self,
83
86
  aggregated_properties: bool = False,
84
- data_set_external_ids: list[str] | None = None,
85
- asset_subtree_external_ids: list[str] | None = None,
87
+ filter: ClassicFilter | None = None,
86
88
  limit: int = 100,
87
89
  cursor: str | None = None,
88
90
  ) -> PagedResponse[AssetResponse]:
@@ -91,25 +93,35 @@ class AssetsAPI(CDFResourceAPI[InternalOrExternalId, AssetRequest, AssetResponse
91
93
  Returns:
92
94
  PagedResponse of AssetResponse objects.
93
95
  """
94
- filter_: dict[str, Any] = {}
95
- if asset_subtree_external_ids:
96
- filter_["assetSubtreeExternalIds"] = [{"externalId": ext_id} for ext_id in asset_subtree_external_ids]
97
- if data_set_external_ids:
98
- filter_["dataSetIds"] = [{"externalId": ds_id} for ds_id in data_set_external_ids]
99
-
100
- return self._iterate(
96
+ return self._paginate(
101
97
  cursor=cursor,
102
98
  limit=limit,
103
99
  body={
104
100
  "aggregatedProperties": ["childCount", "path", "depth"] if aggregated_properties else [],
105
- "filter": filter_ or None,
101
+ "filter": filter.dump() if filter else None,
106
102
  },
107
103
  )
108
104
 
109
- def list(
105
+ def iterate(
110
106
  self,
107
+ aggregated_properties: bool = False,
108
+ filter: ClassicFilter | None = None,
111
109
  limit: int | None = 100,
112
- ) -> list[AssetResponse]:
110
+ ) -> Iterable[list[AssetResponse]]:
111
+ """Iterate over all assets in CDF.
112
+
113
+ Returns:
114
+ Sequence of AssetResponse objects.
115
+ """
116
+ return self._iterate(
117
+ limit=limit,
118
+ body={
119
+ "aggregatedProperties": ["childCount", "path", "depth"] if aggregated_properties else [],
120
+ "filter": filter.dump() if filter else None,
121
+ },
122
+ )
123
+
124
+ def list(self, limit: int | None = 100) -> list[AssetResponse]:
113
125
  """List all asset references in CDF.
114
126
 
115
127
  Returns:
@@ -0,0 +1,141 @@
1
+ from collections.abc import Iterable, Sequence
2
+ from typing import Any, Literal
3
+
4
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
5
+ from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
7
+ from cognite_toolkit._cdf_tk.client.resource_classes.dataset import DataSetRequest, DataSetResponse
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalOrExternalId
9
+
10
+
11
+ class DataSetsAPI(CDFResourceAPI[InternalOrExternalId, DataSetRequest, DataSetResponse]):
12
+ def __init__(self, http_client: HTTPClient) -> None:
13
+ super().__init__(
14
+ http_client=http_client,
15
+ method_endpoint_map={
16
+ "create": Endpoint(method="POST", path="/datasets", item_limit=10, concurrency_max_workers=1),
17
+ "retrieve": Endpoint(method="POST", path="/datasets/byids", item_limit=1000, concurrency_max_workers=1),
18
+ "update": Endpoint(method="POST", path="/datasets/update", item_limit=1000, concurrency_max_workers=1),
19
+ "list": Endpoint(method="POST", path="/datasets/list", item_limit=1000),
20
+ },
21
+ )
22
+
23
+ def _validate_page_response(
24
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
25
+ ) -> PagedResponse[DataSetResponse]:
26
+ return PagedResponse[DataSetResponse].model_validate_json(response.body)
27
+
28
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
29
+ return ResponseItems[InternalOrExternalId].model_validate_json(response.body)
30
+
31
+ def create(self, items: Sequence[DataSetRequest]) -> list[DataSetResponse]:
32
+ """Create data sets in CDF.
33
+
34
+ Args:
35
+ items: List of DataSetRequest objects to create.
36
+ Returns:
37
+ List of created DataSetResponse objects.
38
+ """
39
+ return self._request_item_response(items, "create")
40
+
41
+ def retrieve(
42
+ self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False
43
+ ) -> list[DataSetResponse]:
44
+ """Retrieve data sets from CDF.
45
+
46
+ Args:
47
+ items: List of InternalOrExternalId objects to retrieve.
48
+ ignore_unknown_ids: Whether to ignore unknown IDs.
49
+ Returns:
50
+ List of retrieved DataSetResponse objects.
51
+ """
52
+ return self._request_item_response(
53
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
54
+ )
55
+
56
+ def update(
57
+ self, items: Sequence[DataSetRequest], mode: Literal["patch", "replace"] = "replace"
58
+ ) -> list[DataSetResponse]:
59
+ """Update data sets in CDF.
60
+
61
+ Args:
62
+ items: List of DataSetRequest objects to update.
63
+ mode: Update mode, either "patch" or "replace".
64
+
65
+ Returns:
66
+ List of updated DataSetResponse objects.
67
+ """
68
+ return self._update(items, mode=mode)
69
+
70
+ def paginate(
71
+ self,
72
+ metadata: dict[str, str] | None = None,
73
+ external_id_prefix: str | None = None,
74
+ write_protected: bool | None = None,
75
+ limit: int = 100,
76
+ cursor: str | None = None,
77
+ ) -> PagedResponse[DataSetResponse]:
78
+ """Iterate over all data sets in CDF.
79
+
80
+ Args:
81
+ metadata: Filter by metadata.
82
+ external_id_prefix: Filter by external ID prefix.
83
+ write_protected: Filter by write protection status.
84
+ limit: Maximum number of items to return.
85
+ cursor: Cursor for pagination.
86
+
87
+ Returns:
88
+ PagedResponse of DataSetResponse objects.
89
+ """
90
+ filter_body: dict[str, Any] = {}
91
+ if metadata is not None:
92
+ filter_body["metadata"] = metadata
93
+ if external_id_prefix is not None:
94
+ filter_body["externalIdPrefix"] = external_id_prefix
95
+ if write_protected is not None:
96
+ filter_body["writeProtected"] = write_protected
97
+
98
+ return self._paginate(
99
+ cursor=cursor,
100
+ limit=limit,
101
+ body={"filter": filter_body} if filter_body else {},
102
+ )
103
+
104
+ def iterate(
105
+ self,
106
+ metadata: dict[str, str] | None = None,
107
+ external_id_prefix: str | None = None,
108
+ write_protected: bool | None = None,
109
+ limit: int = 100,
110
+ ) -> Iterable[list[DataSetResponse]]:
111
+ """Iterate over all data sets in CDF.
112
+
113
+ Args:
114
+ metadata: Filter by metadata.
115
+ external_id_prefix: Filter by external ID prefix.
116
+ write_protected: Filter by write protection status.
117
+ limit: Maximum number of items to return per page.
118
+
119
+ Returns:
120
+ Iterable of lists of DataSetResponse objects.
121
+ """
122
+ filter_body: dict[str, Any] = {}
123
+ if metadata is not None:
124
+ filter_body["metadata"] = metadata
125
+ if external_id_prefix is not None:
126
+ filter_body["externalIdPrefix"] = external_id_prefix
127
+ if write_protected is not None:
128
+ filter_body["writeProtected"] = write_protected
129
+
130
+ return self._iterate(
131
+ limit=limit,
132
+ body={"filter": filter_body} if filter_body else {},
133
+ )
134
+
135
+ def list(self, limit: int | None = 100) -> list[DataSetResponse]:
136
+ """List all data sets in CDF.
137
+
138
+ Returns:
139
+ List of DataSetResponse objects.
140
+ """
141
+ return self._list(limit=limit)
@@ -1,11 +1,12 @@
1
- from collections.abc import Sequence
2
- from typing import Any, Literal
1
+ from collections.abc import Iterable, Sequence
2
+ from typing import Literal
3
3
 
4
4
  from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
- from cognite_toolkit._cdf_tk.client.data_classes.event import EventRequest, EventResponse
7
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, SuccessResponse2
6
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
7
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.event import EventRequest, EventResponse
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalOrExternalId
9
10
 
10
11
 
11
12
  class EventsAPI(CDFResourceAPI[InternalOrExternalId, EventRequest, EventResponse]):
@@ -21,7 +22,9 @@ class EventsAPI(CDFResourceAPI[InternalOrExternalId, EventRequest, EventResponse
21
22
  },
22
23
  )
23
24
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[EventResponse]:
25
+ def _validate_page_response(
26
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
27
+ ) -> PagedResponse[EventResponse]:
25
28
  return PagedResponse[EventResponse].model_validate_json(response.body)
26
29
 
27
30
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -73,34 +76,45 @@ class EventsAPI(CDFResourceAPI[InternalOrExternalId, EventRequest, EventResponse
73
76
  """
74
77
  self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
75
78
 
76
- def iterate(
79
+ def paginate(
77
80
  self,
78
- data_set_external_ids: list[str] | None = None,
79
- asset_subtree_external_ids: list[str] | None = None,
81
+ filter: ClassicFilter | None = None,
80
82
  limit: int = 100,
81
83
  cursor: str | None = None,
82
84
  ) -> PagedResponse[EventResponse]:
83
85
  """Iterate over all events in CDF.
84
86
 
85
87
  Args:
86
- data_set_external_ids: Filter by data set external IDs.
87
- asset_subtree_external_ids: Filter by asset subtree external IDs.
88
+ filter: Filter by data set IDs and/or asset subtree IDs.
88
89
  limit: Maximum number of items to return.
89
90
  cursor: Cursor for pagination.
90
91
 
91
92
  Returns:
92
93
  PagedResponse of EventResponse objects.
93
94
  """
94
- filter_: dict[str, Any] = {}
95
- if asset_subtree_external_ids:
96
- filter_["assetSubtreeIds"] = [{"externalId": ext_id} for ext_id in asset_subtree_external_ids]
97
- if data_set_external_ids:
98
- filter_["dataSetIds"] = [{"externalId": ds_id} for ds_id in data_set_external_ids]
95
+ return self._paginate(
96
+ cursor=cursor,
97
+ limit=limit,
98
+ body={"filter": filter.dump() if filter else None},
99
+ )
99
100
 
101
+ def iterate(
102
+ self,
103
+ filter: ClassicFilter | None = None,
104
+ limit: int | None = 100,
105
+ ) -> Iterable[list[EventResponse]]:
106
+ """Iterate over all events in CDF.
107
+
108
+ Args:
109
+ filter: Filter by data set IDs and/or asset subtree IDs.
110
+ limit: Maximum number of items to return per page.
111
+
112
+ Returns:
113
+ Iterable of lists of EventResponse objects.
114
+ """
100
115
  return self._iterate(
101
- cursor=cursor,
102
116
  limit=limit,
103
- body={"filter": filter_ or None},
117
+ body={"filter": filter.dump() if filter else None},
104
118
  )
105
119
 
106
120
  def list(
@@ -0,0 +1,148 @@
1
+ from collections.abc import Iterable, Sequence
2
+ from typing import Any, Literal
3
+
4
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
5
+ from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
7
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.extraction_pipeline import (
9
+ ExtractionPipelineRequest,
10
+ ExtractionPipelineResponse,
11
+ )
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalOrExternalId
13
+
14
+
15
+ class ExtractionPipelinesAPI(
16
+ CDFResourceAPI[InternalOrExternalId, ExtractionPipelineRequest, ExtractionPipelineResponse]
17
+ ):
18
+ def __init__(self, http_client: HTTPClient) -> None:
19
+ super().__init__(
20
+ http_client=http_client,
21
+ method_endpoint_map={
22
+ "create": Endpoint(method="POST", path="/extpipes", item_limit=1000, concurrency_max_workers=1),
23
+ "retrieve": Endpoint(method="POST", path="/extpipes/byids", item_limit=1000, concurrency_max_workers=1),
24
+ "update": Endpoint(method="POST", path="/extpipes/update", item_limit=1000, concurrency_max_workers=1),
25
+ "delete": Endpoint(method="POST", path="/extpipes/delete", item_limit=1000, concurrency_max_workers=1),
26
+ "list": Endpoint(method="POST", path="/extpipes/list", item_limit=1000),
27
+ },
28
+ )
29
+
30
+ def _validate_page_response(
31
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
32
+ ) -> PagedResponse[ExtractionPipelineResponse]:
33
+ return PagedResponse[ExtractionPipelineResponse].model_validate_json(response.body)
34
+
35
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
36
+ return ResponseItems[InternalOrExternalId].model_validate_json(response.body)
37
+
38
+ def create(self, items: Sequence[ExtractionPipelineRequest]) -> list[ExtractionPipelineResponse]:
39
+ """Create extraction pipelines in CDF.
40
+
41
+ Args:
42
+ items: List of ExtractionPipelineRequest objects to create.
43
+ Returns:
44
+ List of created ExtractionPipelineResponse objects.
45
+ """
46
+ return self._request_item_response(items, "create")
47
+
48
+ def retrieve(
49
+ self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False
50
+ ) -> list[ExtractionPipelineResponse]:
51
+ """Retrieve extraction pipelines from CDF.
52
+
53
+ Args:
54
+ items: List of InternalOrExternalId objects to retrieve.
55
+ ignore_unknown_ids: Whether to ignore unknown IDs.
56
+ Returns:
57
+ List of retrieved ExtractionPipelineResponse objects.
58
+ """
59
+ return self._request_item_response(
60
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
61
+ )
62
+
63
+ def update(
64
+ self, items: Sequence[ExtractionPipelineRequest], mode: Literal["patch", "replace"] = "replace"
65
+ ) -> list[ExtractionPipelineResponse]:
66
+ """Update extraction pipelines in CDF.
67
+
68
+ Args:
69
+ items: List of ExtractionPipelineRequest objects to update.
70
+ mode: Update mode, either "patch" or "replace".
71
+
72
+ Returns:
73
+ List of updated ExtractionPipelineResponse objects.
74
+ """
75
+ return self._update(items, mode=mode)
76
+
77
+ def delete(self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False) -> None:
78
+ """Delete extraction pipelines from CDF.
79
+
80
+ Args:
81
+ items: List of InternalOrExternalId objects to delete.
82
+ ignore_unknown_ids: Whether to ignore unknown IDs.
83
+ """
84
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
85
+
86
+ def paginate(
87
+ self,
88
+ filter: ClassicFilter | None = None,
89
+ external_id_prefix: str | None = None,
90
+ limit: int = 100,
91
+ cursor: str | None = None,
92
+ ) -> PagedResponse[ExtractionPipelineResponse]:
93
+ """Iterate over all extraction pipelines in CDF.
94
+
95
+ Args:
96
+ filter: Filter by data set IDs.
97
+ external_id_prefix: Filter by external ID prefix.
98
+ limit: Maximum number of items to return.
99
+ cursor: Cursor for pagination.
100
+
101
+ Returns:
102
+ PagedResponse of ExtractionPipelineResponse objects.
103
+ """
104
+ filter_body: dict[str, Any] = filter.dump() if filter else {}
105
+ if external_id_prefix is not None:
106
+ filter_body["externalIdPrefix"] = external_id_prefix
107
+
108
+ return self._paginate(
109
+ cursor=cursor,
110
+ limit=limit,
111
+ body={"filter": filter_body} if filter_body else None,
112
+ )
113
+
114
+ def iterate(
115
+ self,
116
+ filter: ClassicFilter | None = None,
117
+ external_id_prefix: str | None = None,
118
+ limit: int = 100,
119
+ ) -> Iterable[list[ExtractionPipelineResponse]]:
120
+ """Iterate over all extraction pipelines in CDF.
121
+
122
+ Args:
123
+ filter: Filter by data set IDs.
124
+ external_id_prefix: Filter by external ID prefix.
125
+ limit: Maximum number of items to return per page.
126
+
127
+ Returns:
128
+ Iterable of lists of ExtractionPipelineResponse objects.
129
+ """
130
+ filter_body: dict[str, Any] = filter.dump() if filter else {}
131
+ if external_id_prefix is not None:
132
+ filter_body["externalIdPrefix"] = external_id_prefix
133
+
134
+ return self._iterate(
135
+ limit=limit,
136
+ body={"filter": filter_body} if filter_body else None,
137
+ )
138
+
139
+ def list(
140
+ self,
141
+ limit: int | None = 100,
142
+ ) -> list[ExtractionPipelineResponse]:
143
+ """List all extraction pipelines in CDF.
144
+
145
+ Returns:
146
+ List of ExtractionPipelineResponse objects.
147
+ """
148
+ return self._list(limit=limit)
@@ -1,11 +1,17 @@
1
- from collections.abc import Sequence
1
+ from collections.abc import Iterable, Sequence
2
2
  from typing import Any, Literal
3
3
 
4
4
  from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
5
5
  from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
6
- from cognite_toolkit._cdf_tk.client.data_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
7
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalOrExternalId
8
- from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, RequestMessage2, SuccessResponse2
6
+ from cognite_toolkit._cdf_tk.client.http_client import (
7
+ HTTPClient,
8
+ ItemsSuccessResponse2,
9
+ RequestMessage2,
10
+ SuccessResponse2,
11
+ )
12
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
13
+ from cognite_toolkit._cdf_tk.client.resource_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
14
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalOrExternalId
9
15
 
10
16
 
11
17
  class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest, FileMetadataResponse]):
@@ -21,7 +27,9 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
21
27
  },
22
28
  )
23
29
 
24
- def _page_response(self, response: SuccessResponse2) -> PagedResponse[FileMetadataResponse]:
30
+ def _validate_page_response(
31
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
32
+ ) -> PagedResponse[FileMetadataResponse]:
25
33
  return PagedResponse[FileMetadataResponse].model_validate_json(response.body)
26
34
 
27
35
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -51,7 +59,7 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
51
59
  )
52
60
  response = self._http_client.request_single_retries(request)
53
61
  result = response.get_success_or_raise()
54
- results.extend(self._page_response(result).items)
62
+ results.append(FileMetadataResponse.model_validate_json(result.body))
55
63
  return results
56
64
 
57
65
  def retrieve(
@@ -92,10 +100,9 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
92
100
  """
93
101
  self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
94
102
 
95
- def iterate(
103
+ def paginate(
96
104
  self,
97
- data_set_external_ids: list[str] | None = None,
98
- asset_subtree_external_ids: list[str] | None = None,
105
+ filter: ClassicFilter | None = None,
99
106
  directory_prefix: str | None = None,
100
107
  uploaded: bool | None = None,
101
108
  limit: int = 100,
@@ -104,8 +111,7 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
104
111
  """Iterate over file metadata in CDF.
105
112
 
106
113
  Args:
107
- data_set_external_ids: Filter by data set external IDs.
108
- asset_subtree_external_ids: Filter by asset subtree external IDs.
114
+ filter: Filter by data set IDs and/or asset subtree IDs.
109
115
  directory_prefix: Filter by directory prefix.
110
116
  uploaded: Filter by upload status.
111
117
  limit: Maximum number of items to return per page.
@@ -114,22 +120,47 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
114
120
  Returns:
115
121
  PagedResponse of FileMetadataResponse objects.
116
122
  """
117
- filter_: dict[str, Any] = {}
118
- if asset_subtree_external_ids:
119
- filter_["assetSubtreeIds"] = [{"externalId": ext_id} for ext_id in asset_subtree_external_ids]
120
- if data_set_external_ids:
121
- filter_["dataSetIds"] = [{"externalId": ds_id} for ds_id in data_set_external_ids]
123
+ filter_: dict[str, Any] = filter.dump() if filter else {}
122
124
  if directory_prefix is not None:
123
125
  filter_["directoryPrefix"] = directory_prefix
124
126
  if uploaded is not None:
125
127
  filter_["uploaded"] = uploaded
126
128
 
127
- return self._iterate(
129
+ return self._paginate(
128
130
  cursor=cursor,
129
131
  limit=limit,
130
132
  body={"filter": filter_ or None},
131
133
  )
132
134
 
135
+ def iterate(
136
+ self,
137
+ filter: ClassicFilter | None = None,
138
+ directory_prefix: str | None = None,
139
+ uploaded: bool | None = None,
140
+ limit: int | None = 100,
141
+ ) -> Iterable[list[FileMetadataResponse]]:
142
+ """Iterate over file metadata in CDF.
143
+
144
+ Args:
145
+ filter: Filter by data set IDs and/or asset subtree IDs.
146
+ directory_prefix: Filter by directory prefix.
147
+ uploaded: Filter by upload status.
148
+ limit: Maximum number of items to return per page.
149
+
150
+ Returns:
151
+ Iterable of lists of FileMetadataResponse objects.
152
+ """
153
+ filter_: dict[str, Any] = filter.dump() if filter else {}
154
+ if directory_prefix is not None:
155
+ filter_["directoryPrefix"] = directory_prefix
156
+ if uploaded is not None:
157
+ filter_["uploaded"] = uploaded
158
+
159
+ return self._iterate(
160
+ limit=limit,
161
+ body={"filter": filter_ or None},
162
+ )
163
+
133
164
  def list(
134
165
  self,
135
166
  limit: int | None = 100,