cognite-toolkit 0.7.45__py3-none-any.whl → 0.7.47__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 (203) 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/agents.py +107 -0
  6. cognite_toolkit/_cdf_tk/client/api/annotations.py +129 -0
  7. cognite_toolkit/_cdf_tk/client/api/assets.py +30 -18
  8. cognite_toolkit/_cdf_tk/client/api/containers.py +132 -0
  9. cognite_toolkit/_cdf_tk/client/api/data_models.py +137 -0
  10. cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
  11. cognite_toolkit/_cdf_tk/client/api/events.py +31 -17
  12. cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
  13. cognite_toolkit/_cdf_tk/client/api/filemetadata.py +42 -16
  14. cognite_toolkit/_cdf_tk/client/api/function_schedules.py +115 -0
  15. cognite_toolkit/_cdf_tk/client/api/functions.py +113 -0
  16. cognite_toolkit/_cdf_tk/client/api/graphql_data_models.py +167 -0
  17. cognite_toolkit/_cdf_tk/client/api/groups.py +121 -0
  18. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
  19. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
  20. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
  21. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
  22. cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
  23. cognite_toolkit/_cdf_tk/client/api/infield.py +7 -7
  24. cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
  25. cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +2 -2
  26. cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
  27. cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
  28. cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
  29. cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
  30. cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
  31. cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
  32. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
  33. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
  34. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
  35. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
  36. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
  37. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
  38. cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
  39. cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
  40. cognite_toolkit/_cdf_tk/client/api/project.py +1 -1
  41. cognite_toolkit/_cdf_tk/client/api/raw.py +38 -8
  42. cognite_toolkit/_cdf_tk/client/api/relationships.py +133 -0
  43. cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
  44. cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
  45. cognite_toolkit/_cdf_tk/client/api/simulator_models.py +32 -6
  46. cognite_toolkit/_cdf_tk/client/api/spaces.py +117 -0
  47. cognite_toolkit/_cdf_tk/client/api/streams.py +1 -1
  48. cognite_toolkit/_cdf_tk/client/api/three_d.py +11 -11
  49. cognite_toolkit/_cdf_tk/client/api/timeseries.py +31 -17
  50. cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
  51. cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
  52. cognite_toolkit/_cdf_tk/client/api/views.py +139 -0
  53. cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
  54. cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
  55. cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
  56. cognite_toolkit/_cdf_tk/client/cdf_client/api.py +44 -40
  57. cognite_toolkit/_cdf_tk/client/cdf_client/responses.py +11 -0
  58. cognite_toolkit/_cdf_tk/client/http_client/_data_classes.py +10 -0
  59. cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +5 -7
  60. cognite_toolkit/_cdf_tk/client/http_client/_exception.py +10 -1
  61. cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
  62. cognite_toolkit/_cdf_tk/client/request_classes/filters.py +69 -0
  63. cognite_toolkit/_cdf_tk/client/request_classes/graphql.py +28 -0
  64. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/agent.py +9 -3
  65. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/annotation.py +1 -1
  66. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/asset.py +1 -1
  67. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_constraints.py +1 -1
  68. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_container.py +1 -1
  69. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_data_model.py +1 -1
  70. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_data_types.py +1 -1
  71. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_indexes.py +1 -1
  72. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_instance.py +1 -1
  73. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_references.py +1 -1
  74. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_space.py +1 -1
  75. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_view.py +1 -1
  76. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_view_property.py +1 -1
  77. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/dataset.py +1 -1
  78. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/event.py +1 -1
  79. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/extraction_pipeline.py +1 -1
  80. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/filemetadata.py +1 -1
  81. cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
  82. cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +65 -0
  83. cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
  84. cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
  85. cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
  86. cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
  87. cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
  88. cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +63 -0
  89. cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
  90. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_destination.py +1 -1
  91. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_job.py +1 -1
  92. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_mapping.py +1 -1
  93. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_auth.py +1 -1
  94. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_base.py +2 -2
  95. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_certificate.py +1 -1
  96. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_eventhub.py +1 -1
  97. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_kafka.py +1 -1
  98. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_mqtt.py +1 -1
  99. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_rest.py +1 -1
  100. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/identifiers.py +1 -1
  101. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/label.py +1 -1
  102. cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
  103. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +1 -1
  104. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
  105. cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +77 -0
  106. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/raw.py +1 -1
  107. cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +49 -0
  108. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
  109. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
  110. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
  111. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
  112. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
  113. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
  114. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +60 -0
  115. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +53 -0
  116. cognite_toolkit/_cdf_tk/client/resource_classes/search_config_resource.py +54 -0
  117. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/securitycategory.py +1 -1
  118. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/sequence.py +1 -1
  119. cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
  120. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/simulator_model.py +1 -1
  121. cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
  122. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +6 -5
  123. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/timeseries.py +1 -1
  124. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/transformation.py +1 -1
  125. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow.py +1 -1
  126. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow_trigger.py +1 -1
  127. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow_version.py +1 -1
  128. cognite_toolkit/_cdf_tk/client/testing.py +20 -2
  129. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +5 -5
  130. cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
  131. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +6 -6
  132. cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +6 -6
  133. cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
  134. cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +1 -1
  135. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +8 -8
  136. cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
  137. cognite_toolkit/_cdf_tk/commands/_purge.py +1 -1
  138. cognite_toolkit/_cdf_tk/commands/build_cmd.py +1 -1
  139. cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
  140. cognite_toolkit/_cdf_tk/commands/run.py +1 -1
  141. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +3 -3
  142. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +2 -2
  143. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +11 -27
  144. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
  145. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
  146. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
  147. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +4 -4
  148. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +7 -14
  149. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
  150. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
  151. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +2 -2
  152. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
  153. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
  154. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +1 -1
  155. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
  156. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +6 -3
  157. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +2 -2
  158. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +6 -13
  159. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
  160. cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
  161. cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
  162. cognite_toolkit/_cdf_tk/storageio/_applications.py +3 -3
  163. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +21 -27
  164. cognite_toolkit/_cdf_tk/storageio/_file_content.py +2 -2
  165. cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
  166. cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
  167. cognite_toolkit/_cdf_tk/utils/interactive_select.py +5 -5
  168. cognite_toolkit/_cdf_tk/utils/useful_types2.py +3 -3
  169. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  170. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  171. cognite_toolkit/_resources/cdf.toml +1 -1
  172. cognite_toolkit/_version.py +1 -1
  173. {cognite_toolkit-0.7.45.dist-info → cognite_toolkit-0.7.47.dist-info}/METADATA +3 -3
  174. {cognite_toolkit-0.7.45.dist-info → cognite_toolkit-0.7.47.dist-info}/RECORD +203 -152
  175. {cognite_toolkit-0.7.45.dist-info → cognite_toolkit-0.7.47.dist-info}/WHEEL +2 -2
  176. /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
  177. /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
  178. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/base.py +0 -0
  179. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
  180. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +0 -0
  181. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/__init__.py +0 -0
  182. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/__init__.py +0 -0
  183. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +0 -0
  184. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +0 -0
  185. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
  186. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
  187. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
  188. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
  189. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
  190. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
  191. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
  192. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
  193. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
  194. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
  195. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
  196. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
  197. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
  198. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
  199. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
  200. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
  201. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
  202. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/three_d.py +0 -0
  203. {cognite_toolkit-0.7.45.dist-info → cognite_toolkit-0.7.47.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,138 @@
1
+ from collections.abc import Iterable, Sequence
2
+ from typing import Any
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.identifiers import WorkflowVersionId
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.workflow_version import (
9
+ WorkflowVersionRequest,
10
+ WorkflowVersionResponse,
11
+ )
12
+
13
+
14
+ class WorkflowVersionsAPI(CDFResourceAPI[WorkflowVersionId, WorkflowVersionRequest, WorkflowVersionResponse]):
15
+ def __init__(self, http_client: HTTPClient) -> None:
16
+ super().__init__(
17
+ http_client=http_client,
18
+ method_endpoint_map={
19
+ "upsert": Endpoint(method="POST", path="/workflows/versions", item_limit=1),
20
+ "retrieve": Endpoint(
21
+ method="GET", path="/workflow/{workflowExternalId}/versions/{version}", item_limit=1
22
+ ),
23
+ "delete": Endpoint(method="POST", path="/workflows/versions/delete", item_limit=100),
24
+ "list": Endpoint(method="POST", path="/workflows/versions/list", item_limit=1000),
25
+ },
26
+ )
27
+
28
+ def _validate_page_response(
29
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
30
+ ) -> PagedResponse[WorkflowVersionResponse]:
31
+ return PagedResponse[WorkflowVersionResponse].model_validate_json(response.body)
32
+
33
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[WorkflowVersionId]:
34
+ return ResponseItems[WorkflowVersionId].model_validate_json(response.body)
35
+
36
+ def create(self, items: Sequence[WorkflowVersionRequest]) -> list[WorkflowVersionResponse]:
37
+ """Create or update workflow versions in CDF.
38
+
39
+ Args:
40
+ items: List of WorkflowVersionRequest objects to create or update.
41
+ Returns:
42
+ List of created/updated WorkflowVersionResponse objects.
43
+ """
44
+ return self._request_item_response(items, "upsert")
45
+
46
+ # This is a duplicate of the create method, included to standardize the API interface.
47
+ def update(self, items: Sequence[WorkflowVersionRequest]) -> list[WorkflowVersionResponse]:
48
+ """Create or update workflow versions in CDF.
49
+
50
+ Args:
51
+ items: List of WorkflowVersionRequest objects to create or update.
52
+ Returns:
53
+ List of created/updated WorkflowVersionResponse objects.
54
+ """
55
+ return self.create(items)
56
+
57
+ def retrieve(self, items: Sequence[WorkflowVersionId]) -> list[WorkflowVersionResponse]:
58
+ """Retrieve workflow versions from CDF.
59
+
60
+ Args:
61
+ items: List of WorkflowVersionId objects to retrieve.
62
+ Returns:
63
+ List of retrieved WorkflowVersionResponse objects.
64
+ """
65
+ result: list[WorkflowVersionResponse] = []
66
+ for item in items:
67
+ endpoint = f"/workflows/{item.workflow_external_id}/versions/{item.version}"
68
+ retrieved = self._request_item_response([item], "retrieve", endpoint=endpoint)
69
+ result.extend(retrieved)
70
+ return result
71
+
72
+ def delete(self, items: Sequence[WorkflowVersionId]) -> None:
73
+ """Delete workflow versions from CDF.
74
+
75
+ Args:
76
+ items: List of WorkflowVersionId objects to delete.
77
+ """
78
+ self._request_no_response(items, "delete")
79
+
80
+ def paginate(
81
+ self,
82
+ workflow_external_id: str | None = None,
83
+ limit: int = 100,
84
+ cursor: str | None = None,
85
+ ) -> PagedResponse[WorkflowVersionResponse]:
86
+ """Iterate over all workflow versions in CDF.
87
+
88
+ Args:
89
+ workflow_external_id: Filter by workflow external ID.
90
+ limit: Maximum number of items to return.
91
+ cursor: Cursor for pagination.
92
+
93
+ Returns:
94
+ PagedResponse of WorkflowVersionResponse objects.
95
+ """
96
+ body: dict[str, Any] = {}
97
+ if workflow_external_id:
98
+ body["workflowExternalId"] = workflow_external_id
99
+
100
+ return self._paginate(
101
+ cursor=cursor,
102
+ limit=limit,
103
+ body=body,
104
+ )
105
+
106
+ def iterate(
107
+ self,
108
+ workflow_external_id: str | None = None,
109
+ limit: int = 100,
110
+ ) -> Iterable[list[WorkflowVersionResponse]]:
111
+ """Iterate over all workflow versions in CDF.
112
+
113
+ Args:
114
+ workflow_external_id: Filter by workflow external ID.
115
+ limit: Maximum number of items to return per page.
116
+
117
+ Returns:
118
+ Iterable of lists of WorkflowVersionResponse objects.
119
+ """
120
+ body: dict[str, Any] = {}
121
+ if workflow_external_id:
122
+ body["workflowExternalId"] = workflow_external_id
123
+
124
+ return self._iterate(
125
+ limit=limit,
126
+ body=body,
127
+ )
128
+
129
+ def list(
130
+ self,
131
+ limit: int | None = 100,
132
+ ) -> list[WorkflowVersionResponse]:
133
+ """List all workflow versions in CDF.
134
+
135
+ Returns:
136
+ List of WorkflowVersionResponse objects.
137
+ """
138
+ return self._list(limit=limit)
@@ -0,0 +1,119 @@
1
+ from collections.abc import Iterable, Sequence
2
+
3
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse, ResponseItems
4
+ from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
5
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
6
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
7
+ from cognite_toolkit._cdf_tk.client.resource_classes.workflow import WorkflowRequest, WorkflowResponse
8
+
9
+ from .workflow_triggers import WorkflowTriggersAPI
10
+ from .workflow_versions import WorkflowVersionsAPI
11
+
12
+
13
+ class WorkflowsAPI(CDFResourceAPI[ExternalId, WorkflowRequest, WorkflowResponse]):
14
+ def __init__(self, http_client: HTTPClient) -> None:
15
+ super().__init__(
16
+ http_client=http_client,
17
+ method_endpoint_map={
18
+ "upsert": Endpoint(method="POST", path="/workflows", item_limit=1),
19
+ "retrieve": Endpoint(method="GET", path="/workflows/{workflowExternalId}", item_limit=1),
20
+ "delete": Endpoint(method="POST", path="/workflows/delete", item_limit=100),
21
+ "list": Endpoint(method="GET", path="/workflows", item_limit=100),
22
+ },
23
+ )
24
+ self.versions = WorkflowVersionsAPI(http_client)
25
+ self.triggers = WorkflowTriggersAPI(http_client)
26
+
27
+ def _validate_page_response(
28
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
29
+ ) -> PagedResponse[WorkflowResponse]:
30
+ return PagedResponse[WorkflowResponse].model_validate_json(response.body)
31
+
32
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
33
+ return ResponseItems[ExternalId].model_validate_json(response.body)
34
+
35
+ def create(self, items: Sequence[WorkflowRequest]) -> list[WorkflowResponse]:
36
+ """Create or update workflows in CDF.
37
+
38
+ Args:
39
+ items: List of WorkflowRequest objects to create or update.
40
+ Returns:
41
+ List of created/updated WorkflowResponse objects.
42
+ """
43
+ return self._request_item_response(items, "upsert")
44
+
45
+ # This is a duplicate of the create method, included to standardize the API interface.
46
+ def update(self, items: Sequence[WorkflowRequest]) -> list[WorkflowResponse]:
47
+ """Create or update workflows in CDF.
48
+
49
+ Args:
50
+ items: List of WorkflowRequest objects to create or update.
51
+ Returns:
52
+ List of created/updated WorkflowResponse objects.
53
+ """
54
+ return self.create(items)
55
+
56
+ def retrieve(self, items: Sequence[ExternalId]) -> list[WorkflowResponse]:
57
+ """Retrieve a workflow from CDF by external ID.
58
+
59
+ Args:
60
+ items: List of ExternalId objects to retrieve.
61
+
62
+ Returns:
63
+ The retrieved WorkflowResponse object, or None if not found.
64
+ """
65
+ result: list[WorkflowResponse] = []
66
+ for item in items:
67
+ endpoint = f"/workflows/{item.external_id}"
68
+ retrieved = self._request_item_response([item], "retrieve", endpoint=endpoint)
69
+ result.extend(retrieved)
70
+ return result
71
+
72
+ def delete(self, items: Sequence[ExternalId]) -> None:
73
+ """Delete workflows from CDF.
74
+
75
+ Args:
76
+ items: List of ExternalId objects to delete.
77
+ """
78
+ self._request_no_response(items, "delete")
79
+
80
+ def paginate(
81
+ self,
82
+ limit: int = 100,
83
+ cursor: str | None = None,
84
+ ) -> PagedResponse[WorkflowResponse]:
85
+ """Iterate over all workflows in CDF.
86
+
87
+ Args:
88
+ limit: Maximum number of items to return.
89
+ cursor: Cursor for pagination.
90
+
91
+ Returns:
92
+ PagedResponse of WorkflowResponse objects.
93
+ """
94
+ return self._paginate(cursor=cursor, limit=limit)
95
+
96
+ def iterate(
97
+ self,
98
+ limit: int = 100,
99
+ ) -> Iterable[list[WorkflowResponse]]:
100
+ """Iterate over all workflows in CDF.
101
+
102
+ Args:
103
+ limit: Maximum number of items to return per page.
104
+
105
+ Returns:
106
+ Iterable of lists of WorkflowResponse objects.
107
+ """
108
+ return self._iterate(limit=limit)
109
+
110
+ def list(
111
+ self,
112
+ limit: int | None = 100,
113
+ ) -> list[WorkflowResponse]:
114
+ """List all workflows in CDF.
115
+
116
+ Returns:
117
+ List of WorkflowResponse objects.
118
+ """
119
+ return self._list(limit=limit)
@@ -13,12 +13,6 @@ from typing import Any, Generic, Literal, TypeAlias, TypeVar
13
13
 
14
14
  from pydantic import BaseModel, JsonValue
15
15
 
16
- from cognite_toolkit._cdf_tk.client.data_classes.base import (
17
- RequestUpdateable,
18
- T_Identifier,
19
- T_RequestResource,
20
- T_ResponseResource,
21
- )
22
16
  from cognite_toolkit._cdf_tk.client.http_client import (
23
17
  HTTPClient,
24
18
  ItemsRequest2,
@@ -26,9 +20,15 @@ from cognite_toolkit._cdf_tk.client.http_client import (
26
20
  RequestMessage2,
27
21
  SuccessResponse2,
28
22
  )
23
+ from cognite_toolkit._cdf_tk.client.resource_classes.base import (
24
+ RequestUpdateable,
25
+ T_Identifier,
26
+ T_RequestResource,
27
+ T_ResponseResource,
28
+ )
29
29
  from cognite_toolkit._cdf_tk.utils.collection import chunker_sequence
30
30
 
31
- from .responses import PagedResponse, ResponseItems
31
+ from .responses import PagedResponse
32
32
 
33
33
  _T_BaseModel = TypeVar("_T_BaseModel", bound=BaseModel)
34
34
 
@@ -41,7 +41,7 @@ class Endpoint:
41
41
  concurrency_max_workers: int = 1
42
42
 
43
43
 
44
- APIMethod: TypeAlias = Literal["create", "retrieve", "update", "delete", "list"]
44
+ APIMethod: TypeAlias = Literal["create", "retrieve", "update", "delete", "list", "upsert"]
45
45
 
46
46
 
47
47
  class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource], ABC):
@@ -74,15 +74,12 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
74
74
  return [item.as_update(mode=mode) for item in items]
75
75
 
76
76
  @abstractmethod
77
- def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[T_ResponseResource]:
77
+ def _validate_page_response(
78
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
79
+ ) -> PagedResponse[T_ResponseResource]:
78
80
  """Parse a single item response."""
79
81
  raise NotImplementedError()
80
82
 
81
- @abstractmethod
82
- def _reference_response(self, response: SuccessResponse2) -> ResponseItems[T_Identifier]:
83
- """Parse a reference response."""
84
- raise NotImplementedError()
85
-
86
83
  def _make_url(self, path: str = "") -> str:
87
84
  """Create the full URL for this resource endpoint."""
88
85
  return self._http_client.config.create_api_url(path)
@@ -95,7 +92,7 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
95
92
  for response in self._chunk_requests(
96
93
  items, "update", serialization=partial(self._serialize_updates, mode=mode)
97
94
  ):
98
- response_items.extend(self._page_response(response).items)
95
+ response_items.extend(self._validate_page_response(response).items)
99
96
  return response_items
100
97
 
101
98
  def _request_item_response(
@@ -108,21 +105,9 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
108
105
  ) -> list[T_ResponseResource]:
109
106
  response_items: list[T_ResponseResource] = []
110
107
  for response in self._chunk_requests(items, method, self._serialize_items, params, extra_body, endpoint):
111
- response_items.extend(self._page_response(response).items)
108
+ response_items.extend(self._validate_page_response(response).items)
112
109
  return response_items
113
110
 
114
- def _request_reference_response(
115
- self,
116
- items: Sequence[BaseModel],
117
- method: APIMethod,
118
- params: dict[str, Any] | None = None,
119
- extra_body: dict[str, Any] | None = None,
120
- ) -> list[T_Identifier]:
121
- all_ids: list[T_Identifier] = []
122
- for response in self._chunk_requests(items, method, self._serialize_items, params, extra_body):
123
- all_ids.extend(self._reference_response(response).items)
124
- return all_ids
125
-
126
111
  def _request_no_response(
127
112
  self,
128
113
  items: Sequence[BaseModel],
@@ -192,7 +177,7 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
192
177
  """
193
178
  response_items: list[T_ResponseResource] = []
194
179
  for response in self._chunk_requests_items_split_retries(items, method, params, extra_body):
195
- response_items.extend(self._page_response(response).items)
180
+ response_items.extend(self._validate_page_response(response).items)
196
181
  return response_items
197
182
 
198
183
  def _chunk_requests_items_split_retries(
@@ -254,7 +239,7 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
254
239
  grouped_items[key].append(item)
255
240
  return grouped_items
256
241
 
257
- def _iterate(
242
+ def _paginate(
258
243
  self,
259
244
  limit: int,
260
245
  cursor: str | None = None,
@@ -305,22 +290,41 @@ class CDFResourceAPI(Generic[T_Identifier, T_RequestResource, T_ResponseResource
305
290
  )
306
291
  result = self._http_client.request_single_retries(request)
307
292
  response = result.get_success_or_raise()
308
- return self._page_response(response)
293
+ return self._validate_page_response(response)
309
294
 
310
- def _list(
311
- self, limit: int | None = None, params: dict[str, Any] | None = None, endpoint_path: str | None = None
312
- ) -> list[T_ResponseResource]:
313
- """List all resources, handling pagination automatically."""
314
- all_items: list[T_ResponseResource] = []
315
- next_cursor: str | None = None
295
+ def _iterate(
296
+ self,
297
+ limit: int | None = None,
298
+ cursor: str | None = None,
299
+ params: dict[str, Any] | None = None,
300
+ body: dict[str, Any] | None = None,
301
+ endpoint_path: str | None = None,
302
+ ) -> Iterable[list[T_ResponseResource]]:
303
+ """Iterate over all resources, handling pagination automatically."""
304
+ next_cursor = cursor
316
305
  total = 0
317
306
  endpoint = self._method_endpoint_map["list"]
318
307
  while True:
319
308
  page_limit = endpoint.item_limit if limit is None else min(limit - total, endpoint.item_limit)
320
- page = self._iterate(limit=page_limit, cursor=next_cursor, params=params, endpoint_path=endpoint_path)
321
- all_items.extend(page.items)
309
+ page = self._paginate(
310
+ limit=page_limit, cursor=next_cursor, params=params, body=body, endpoint_path=endpoint_path
311
+ )
312
+ yield page.items
322
313
  total += len(page.items)
323
314
  if page.next_cursor is None or (limit is not None and total >= limit):
324
315
  break
325
316
  next_cursor = page.next_cursor
326
- return all_items
317
+
318
+ def _list(
319
+ self,
320
+ limit: int | None = None,
321
+ params: dict[str, Any] | None = None,
322
+ endpoint_path: str | None = None,
323
+ body: dict[str, Any] | None = None,
324
+ ) -> list[T_ResponseResource]:
325
+ """List all resources, handling pagination automatically."""
326
+ return [
327
+ item
328
+ for batch in self._iterate(limit=limit, params=params, endpoint_path=endpoint_path, body=body)
329
+ for item in batch
330
+ ]
@@ -2,6 +2,8 @@ from typing import Generic, TypeVar
2
2
 
3
3
  from pydantic import BaseModel, Field, JsonValue
4
4
 
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.graphql_data_model import GraphQLDataModelResponse
6
+
5
7
  T = TypeVar("T", bound=BaseModel)
6
8
 
7
9
 
@@ -25,3 +27,12 @@ class QueryResponse(BaseModel, Generic[T]):
25
27
  typing: dict[str, JsonValue] | None = None
26
28
  next_cursor: dict[str, str] = Field(alias="nextCursor")
27
29
  debug: dict[str, JsonValue] | None = None
30
+
31
+
32
+ class GraphQLResponse(BaseModel):
33
+ data: GraphQLDataModelResponse
34
+ errors: list[dict[str, JsonValue]] | None = None
35
+
36
+
37
+ class GraphQLUpsertResponse(BaseModel):
38
+ upsert_graph_ql_dml_version: GraphQLResponse = Field(alias="upsertGraphQlDmlVersion")
@@ -307,6 +307,11 @@ class ItemsRequest(Generic[T_COVARIANT_ID], BodyRequest):
307
307
  connect_attempt=self.connect_attempt,
308
308
  read_attempt=self.read_attempt,
309
309
  status_attempt=status_attempts,
310
+ api_version=self.api_version,
311
+ content_type=self.content_type,
312
+ accept=self.accept,
313
+ content_length=self.content_length,
314
+ max_failures_before_abort=self.max_failures_before_abort,
310
315
  )
311
316
  first_half.tracker = tracker
312
317
  second_half = ItemsRequest[T_COVARIANT_ID](
@@ -317,6 +322,11 @@ class ItemsRequest(Generic[T_COVARIANT_ID], BodyRequest):
317
322
  connect_attempt=self.connect_attempt,
318
323
  read_attempt=self.read_attempt,
319
324
  status_attempt=status_attempts,
325
+ api_version=self.api_version,
326
+ content_type=self.content_type,
327
+ accept=self.accept,
328
+ content_length=self.content_length,
329
+ max_failures_before_abort=self.max_failures_before_abort,
320
330
  )
321
331
  second_half.tracker = tracker
322
332
  return [first_half, second_half]
@@ -1,5 +1,4 @@
1
1
  import gzip
2
- import sys
3
2
  from abc import ABC, abstractmethod
4
3
  from collections import UserList
5
4
  from collections.abc import Sequence
@@ -13,11 +12,6 @@ from cognite_toolkit._cdf_tk.client.http_client._exception import ToolkitAPIErro
13
12
  from cognite_toolkit._cdf_tk.client.http_client._tracker import ItemsRequestTracker
14
13
  from cognite_toolkit._cdf_tk.utils.useful_types import PrimitiveType
15
14
 
16
- if sys.version_info >= (3, 11):
17
- pass
18
- else:
19
- pass
20
-
21
15
 
22
16
  class HTTPResult2(BaseModel):
23
17
  def get_success_or_raise(self) -> "SuccessResponse2":
@@ -25,7 +19,11 @@ class HTTPResult2(BaseModel):
25
19
  if isinstance(self, SuccessResponse2):
26
20
  return self
27
21
  elif isinstance(self, FailedResponse2):
28
- raise ToolkitAPIError(f"Request failed with status code {self.status_code}: {self.error.message}")
22
+ raise ToolkitAPIError(
23
+ f"Request failed with status code {self.status_code}: {self.error.message}",
24
+ missing=self.error.missing, # type: ignore[arg-type]
25
+ duplicated=self.error.duplicated, # type: ignore[arg-type]
26
+ )
29
27
  elif isinstance(self, FailedRequest2):
30
28
  raise ToolkitAPIError(f"Request failed with error: {self.error}")
31
29
  else:
@@ -1,4 +1,13 @@
1
+ from typing import Any
2
+
3
+
1
4
  class ToolkitAPIError(Exception):
2
5
  """Base class for all exceptions raised by the Cognite Toolkit API client."""
3
6
 
4
- pass
7
+ def __init__(
8
+ self, message: str, missing: list[dict[str, Any]] | None = None, duplicated: list[dict[str, Any]] | None = None
9
+ ) -> None:
10
+ super().__init__(message)
11
+ self.message = message
12
+ self.missing = missing
13
+ self.duplicated = duplicated
@@ -0,0 +1,19 @@
1
+ from typing import Any
2
+
3
+ from pydantic import BaseModel, ConfigDict
4
+ from pydantic.alias_generators import to_camel
5
+
6
+
7
+ class BaseModelRequest(BaseModel):
8
+ """Base class for all object. This includes resources and nested objects."""
9
+
10
+ model_config = ConfigDict(alias_generator=to_camel, extra="ignore", populate_by_name=True)
11
+
12
+ def dump(self, camel_case: bool = True) -> dict[str, Any]:
13
+ """Dump the object to a dictionary.
14
+
15
+ Args:
16
+ camel_case (bool): Whether to use camelCase for the keys. Default is True.
17
+
18
+ """
19
+ return self.model_dump(mode="json", by_alias=camel_case, exclude_unset=True)
@@ -0,0 +1,69 @@
1
+ import sys
2
+ from typing import Literal
3
+
4
+ from cognite_toolkit._cdf_tk.client.resource_classes.annotation import AnnotationStatus, AnnotationType
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalId
6
+
7
+ from .base import BaseModelRequest
8
+
9
+ if sys.version_info >= (3, 11):
10
+ from typing import Self
11
+ else:
12
+ from typing_extensions import Self
13
+
14
+
15
+ class Filter(BaseModelRequest): ...
16
+
17
+
18
+ class ClassicFilter(Filter):
19
+ asset_subtree_ids: list[ExternalId | InternalId] | None = None
20
+ data_set_ids: list[ExternalId | InternalId] | None = None
21
+
22
+ @classmethod
23
+ def from_asset_subtree_and_data_sets(
24
+ cls,
25
+ asset_subtree_id: str | int | list[str | int] | None = None,
26
+ data_set_id: str | int | list[str | int] | None = None,
27
+ ) -> Self:
28
+ return cls(
29
+ asset_subtree_ids=cls._as_internal_or_external_id_list(asset_subtree_id),
30
+ data_set_ids=cls._as_internal_or_external_id_list(data_set_id),
31
+ )
32
+
33
+ @classmethod
34
+ def _as_internal_or_external_id_list(
35
+ cls, id: str | int | list[str | int] | None
36
+ ) -> list[ExternalId | InternalId] | None:
37
+ if id is None:
38
+ return None
39
+ ids = id if isinstance(id, list) else [id]
40
+ return [ExternalId(external_id=item) if isinstance(item, str) else InternalId(id=item) for item in ids]
41
+
42
+
43
+ class DataModelingFilter(Filter):
44
+ space: str | None = None
45
+ include_global: bool | None = None
46
+
47
+
48
+ class ContainerFilter(DataModelingFilter):
49
+ used_for: Literal["node", "edge", "record", "all"] | None
50
+
51
+
52
+ class ViewFilter(DataModelingFilter):
53
+ include_inherited_properties: bool | None = None
54
+ all_versions: bool | None = None
55
+
56
+
57
+ class DataModelFilter(DataModelingFilter):
58
+ inline_views: bool | None = None
59
+ all_versions: bool | None = None
60
+
61
+
62
+ class AnnotationFilter(Filter):
63
+ annotated_resource_type: Literal["file", "threedmodel"]
64
+ annotated_resource_ids: list[ExternalId | InternalId]
65
+ annotation_type: AnnotationType | None = None
66
+ created_app: str | None = None
67
+ creating_app_version: str | None = None
68
+ creating_user: str | None = None
69
+ status: AnnotationStatus | None = None
@@ -0,0 +1,28 @@
1
+ UPSERT_BODY = """
2
+ mutation UpsertGraphQlDmlVersion($dmCreate: GraphQlDmlVersionUpsert!) {
3
+ upsertGraphQlDmlVersion(graphQlDmlVersion: $dmCreate) {
4
+ errors {
5
+ kind
6
+ message
7
+ hint
8
+ location {
9
+ start {
10
+ line
11
+ column
12
+ }
13
+ }
14
+ }
15
+ result {
16
+ space
17
+ externalId
18
+ version
19
+ name
20
+ description
21
+ graphQlDml
22
+ isGlobal
23
+ createdTime
24
+ lastUpdatedTime
25
+ }
26
+ }
27
+ }
28
+ """
@@ -2,8 +2,7 @@ from typing import Annotated, Any, Literal
2
2
 
3
3
  from pydantic import BeforeValidator, Field
4
4
 
5
- from cognite_toolkit._cdf_tk.client.data_classes.base import BaseModelObject, RequestResource, ResponseResource
6
- from tests.test_unit.test_cdf_tk.test_tk_warnings.test_warnings_metatest import get_all_subclasses
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.base import BaseModelObject, RequestResource, ResponseResource
7
6
 
8
7
  from .identifiers import ExternalId
9
8
 
@@ -74,7 +73,14 @@ class UnknownAgentTool(AgentToolDefinition):
74
73
  ...
75
74
 
76
75
 
77
- KNOWN_TOOLS = {tool.type: tool for tool in get_all_subclasses(AgentToolDefinition) if hasattr(tool, "type")}
76
+ # Mapping of known agent tool types to their classes
77
+ KNOWN_TOOLS: dict[str, type[AgentToolDefinition]] = {
78
+ "askDocument": AskDocument,
79
+ "examineDataSemantically": ExamineDataSemantically,
80
+ "queryKnowledgeGraph": QueryKnowledgeGraph,
81
+ "queryTimeSeriesDatapoints": QueryTimeSeriesDatapoints,
82
+ "summarizeDocument": SummarizeDocument,
83
+ }
78
84
 
79
85
 
80
86
  def _handle_unknown_tool(value: Any) -> Any:
@@ -2,7 +2,7 @@ from typing import Any, Literal, TypeAlias
2
2
 
3
3
  from pydantic import Field, JsonValue
4
4
 
5
- from cognite_toolkit._cdf_tk.client.data_classes.base import BaseModelObject, RequestUpdateable, ResponseResource
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.base import BaseModelObject, RequestUpdateable, ResponseResource
6
6
 
7
7
  from .identifiers import InternalId
8
8
 
@@ -2,7 +2,7 @@ from typing import ClassVar, Literal
2
2
 
3
3
  from pydantic import JsonValue
4
4
 
5
- from cognite_toolkit._cdf_tk.client.data_classes.base import BaseModelObject, RequestUpdateable, ResponseResource
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.base import BaseModelObject, RequestUpdateable, ResponseResource
6
6
 
7
7
  from .identifiers import ExternalId
8
8