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
@@ -6,19 +6,19 @@ from pydantic import TypeAdapter
6
6
  from rich.console import Console
7
7
 
8
8
  from cognite_toolkit._cdf_tk.client.cdf_client.responses import PagedResponse
9
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import InternalId
10
- from cognite_toolkit._cdf_tk.client.data_classes.three_d import (
9
+ from cognite_toolkit._cdf_tk.client.http_client import (
10
+ HTTPClient,
11
+ ItemsRequest2,
12
+ RequestMessage2,
13
+ )
14
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalId
15
+ from cognite_toolkit._cdf_tk.client.resource_classes.three_d import (
11
16
  AssetMappingClassicRequest,
12
17
  AssetMappingDMRequest,
13
18
  AssetMappingResponse,
14
19
  ThreeDModelClassicRequest,
15
20
  ThreeDModelResponse,
16
21
  )
17
- from cognite_toolkit._cdf_tk.client.http_client import (
18
- HTTPClient,
19
- ItemsRequest2,
20
- RequestMessage2,
21
- )
22
22
  from cognite_toolkit._cdf_tk.utils.collection import chunker_sequence
23
23
  from cognite_toolkit._cdf_tk.utils.useful_types import PrimitiveType
24
24
 
@@ -76,7 +76,7 @@ class ThreeDModelAPI:
76
76
  )
77
77
  responses.raise_for_status()
78
78
 
79
- def iterate(
79
+ def paginate(
80
80
  self,
81
81
  published: bool | None = None,
82
82
  include_revision_info: bool = False,
@@ -122,7 +122,7 @@ class ThreeDModelAPI:
122
122
  )
123
123
  if request_limit <= 0:
124
124
  break
125
- page = self.iterate(
125
+ page = self.paginate(
126
126
  published=published,
127
127
  include_revision_info=include_revision_info,
128
128
  limit=request_limit,
@@ -287,7 +287,7 @@ class ThreeDAssetMappingAPI:
287
287
  responses.raise_for_status()
288
288
  return None
289
289
 
290
- def iterate(
290
+ def paginate(
291
291
  self,
292
292
  model_id: int,
293
293
  revision_id: int,
@@ -361,7 +361,7 @@ class ThreeDAssetMappingAPI:
361
361
  )
362
362
  if request_limit <= 0:
363
363
  break
364
- page = self.iterate(
364
+ page = self.paginate(
365
365
  model_id=model_id,
366
366
  revision_id=revision_id,
367
367
  asset_ids=asset_ids,
@@ -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.identifiers import InternalOrExternalId
7
- from cognite_toolkit._cdf_tk.client.data_classes.timeseries import TimeSeriesRequest, TimeSeriesResponse
8
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.identifiers import InternalOrExternalId
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.timeseries import TimeSeriesRequest, TimeSeriesResponse
9
10
 
10
11
 
11
12
  class TimeSeriesAPI(CDFResourceAPI[InternalOrExternalId, TimeSeriesRequest, TimeSeriesResponse]):
@@ -27,7 +28,9 @@ class TimeSeriesAPI(CDFResourceAPI[InternalOrExternalId, TimeSeriesRequest, Time
27
28
  },
28
29
  )
29
30
 
30
- def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[TimeSeriesResponse]:
31
+ def _validate_page_response(
32
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
33
+ ) -> PagedResponse[TimeSeriesResponse]:
31
34
  return PagedResponse[TimeSeriesResponse].model_validate_json(response.body)
32
35
 
33
36
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -81,34 +84,45 @@ class TimeSeriesAPI(CDFResourceAPI[InternalOrExternalId, TimeSeriesRequest, Time
81
84
  """
82
85
  self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
83
86
 
84
- def iterate(
87
+ def paginate(
85
88
  self,
86
- data_set_external_ids: list[str] | None = None,
87
- asset_subtree_external_ids: list[str] | None = None,
89
+ filter: ClassicFilter | None = None,
88
90
  limit: int = 100,
89
91
  cursor: str | None = None,
90
92
  ) -> PagedResponse[TimeSeriesResponse]:
91
93
  """Iterate over all time series in CDF.
92
94
 
93
95
  Args:
94
- data_set_external_ids: Filter by data set external IDs.
95
- asset_subtree_external_ids: Filter by asset subtree external IDs.
96
+ filter: Filter by data set IDs and/or asset subtree IDs.
96
97
  limit: Maximum number of items to return.
97
98
  cursor: Cursor for pagination.
98
99
 
99
100
  Returns:
100
101
  PagedResponse of TimeSeriesResponse objects.
101
102
  """
102
- filter_: dict[str, Any] = {}
103
- if asset_subtree_external_ids:
104
- filter_["assetSubtreeIds"] = [{"externalId": ext_id} for ext_id in asset_subtree_external_ids]
105
- if data_set_external_ids:
106
- filter_["dataSetIds"] = [{"externalId": ds_id} for ds_id in data_set_external_ids]
103
+ return self._paginate(
104
+ cursor=cursor,
105
+ limit=limit,
106
+ body={"filter": filter.dump() if filter else None},
107
+ )
107
108
 
109
+ def iterate(
110
+ self,
111
+ filter: ClassicFilter | None = None,
112
+ limit: int | None = 100,
113
+ ) -> Iterable[list[TimeSeriesResponse]]:
114
+ """Iterate over all time series in CDF.
115
+
116
+ Args:
117
+ filter: Filter by data set IDs and/or asset subtree IDs.
118
+ limit: Maximum number of items to return per page.
119
+
120
+ Returns:
121
+ Iterable of lists of TimeSeriesResponse objects.
122
+ """
108
123
  return self._iterate(
109
- cursor=cursor,
110
124
  limit=limit,
111
- body={"filter": filter_ or None},
125
+ body={"filter": filter.dump() if filter else None},
112
126
  )
113
127
 
114
128
  def list(
@@ -4,7 +4,7 @@ from cognite.client import CogniteClient
4
4
  from cognite.client.data_classes.capabilities import _CAPABILITY_CLASS_BY_NAME, AllScope, Capability
5
5
  from cognite.client.data_classes.iam import TokenInspection
6
6
 
7
- from cognite_toolkit._cdf_tk.client.data_classes.capabilities import scope_intersection, scope_union
7
+ from cognite_toolkit._cdf_tk.client.resource_classes.capabilities import scope_intersection, scope_union
8
8
  from cognite_toolkit._cdf_tk.utils import humanize_collection
9
9
 
10
10
  _ACL_CLASS_BY_CLASS_NAME = {cap.__name__: cap for cap in _CAPABILITY_CLASS_BY_NAME.values()}
@@ -0,0 +1,146 @@
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.identifiers import InternalOrExternalId
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.transformation import TransformationRequest, TransformationResponse
10
+
11
+
12
+ class TransformationsAPI(CDFResourceAPI[InternalOrExternalId, TransformationRequest, TransformationResponse]):
13
+ def __init__(self, http_client: HTTPClient) -> None:
14
+ super().__init__(
15
+ http_client=http_client,
16
+ method_endpoint_map={
17
+ "create": Endpoint(method="POST", path="/transformations", item_limit=1000),
18
+ "retrieve": Endpoint(method="POST", path="/transformations/byids", item_limit=1000),
19
+ "update": Endpoint(method="POST", path="/transformations/update", item_limit=1000),
20
+ "delete": Endpoint(method="POST", path="/transformations/delete", item_limit=1000),
21
+ "list": Endpoint(method="POST", path="/transformations/filter", item_limit=1000),
22
+ },
23
+ )
24
+
25
+ def _validate_page_response(
26
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
27
+ ) -> PagedResponse[TransformationResponse]:
28
+ return PagedResponse[TransformationResponse].model_validate_json(response.body)
29
+
30
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
31
+ return ResponseItems[InternalOrExternalId].model_validate_json(response.body)
32
+
33
+ def create(self, items: Sequence[TransformationRequest]) -> list[TransformationResponse]:
34
+ """Create transformations in CDF.
35
+
36
+ Args:
37
+ items: List of TransformationRequest objects to create.
38
+ Returns:
39
+ List of created TransformationResponse objects.
40
+ """
41
+ return self._request_item_response(items, "create")
42
+
43
+ def retrieve(
44
+ self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False, with_job_details: bool = False
45
+ ) -> list[TransformationResponse]:
46
+ """Retrieve transformations from CDF.
47
+
48
+ Args:
49
+ items: List of InternalOrExternalId objects to retrieve.
50
+ ignore_unknown_ids: Whether to ignore unknown IDs.
51
+ with_job_details: Whether the transformations will be returned with running job and last created job details.
52
+ Returns:
53
+ List of retrieved TransformationResponse objects.
54
+ """
55
+ return self._request_item_response(
56
+ items,
57
+ method="retrieve",
58
+ extra_body={"ignoreUnknownIds": ignore_unknown_ids, "withJobDetails": with_job_details},
59
+ )
60
+
61
+ def update(
62
+ self, items: Sequence[TransformationRequest], mode: Literal["patch", "replace"] = "replace"
63
+ ) -> list[TransformationResponse]:
64
+ """Update transformations in CDF.
65
+
66
+ Args:
67
+ items: List of TransformationRequest objects to update.
68
+ mode: Update mode, either "patch" or "replace".
69
+
70
+ Returns:
71
+ List of updated TransformationResponse objects.
72
+ """
73
+ return self._update(items, mode=mode)
74
+
75
+ def delete(self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False) -> None:
76
+ """Delete transformations from CDF.
77
+
78
+ Args:
79
+ items: List of InternalOrExternalId objects to delete.
80
+ ignore_unknown_ids: Whether to ignore unknown IDs.
81
+ """
82
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
83
+
84
+ def paginate(
85
+ self,
86
+ filter: ClassicFilter | None = None,
87
+ is_public: bool | None = None,
88
+ limit: int = 100,
89
+ cursor: str | None = None,
90
+ ) -> PagedResponse[TransformationResponse]:
91
+ """Iterate over all transformations in CDF.
92
+
93
+ Args:
94
+ filter: Filter by data set IDs.
95
+ is_public: Filter by public status.
96
+ limit: Maximum number of items to return.
97
+ cursor: Cursor for pagination.
98
+
99
+ Returns:
100
+ PagedResponse of TransformationResponse objects.
101
+ """
102
+ filter_: dict[str, Any] = filter.dump() if filter else {}
103
+ if is_public is not None:
104
+ filter_["isPublic"] = is_public
105
+
106
+ return self._paginate(
107
+ cursor=cursor,
108
+ limit=limit,
109
+ body={"filter": filter_ or None},
110
+ )
111
+
112
+ def iterate(
113
+ self,
114
+ filter: ClassicFilter | None = None,
115
+ is_public: bool | None = None,
116
+ limit: int = 100,
117
+ ) -> Iterable[list[TransformationResponse]]:
118
+ """Iterate over all transformations in CDF.
119
+
120
+ Args:
121
+ filter: Filter by data set IDs.
122
+ is_public: Filter by public status.
123
+ limit: Maximum number of items to return per page.
124
+
125
+ Returns:
126
+ Iterable of lists of TransformationResponse objects.
127
+ """
128
+ filter_: dict[str, Any] = filter.dump() if filter else {}
129
+ if is_public is not None:
130
+ filter_["isPublic"] = is_public
131
+
132
+ return self._iterate(
133
+ limit=limit,
134
+ body={"filter": filter_ or None},
135
+ )
136
+
137
+ def list(
138
+ self,
139
+ limit: int | None = 100,
140
+ ) -> list[TransformationResponse]:
141
+ """List all transformations in CDF.
142
+
143
+ Returns:
144
+ List of TransformationResponse objects.
145
+ """
146
+ return self._list(limit=limit)
@@ -0,0 +1,139 @@
1
+ """Views API for managing CDF data modeling views.
2
+
3
+ Based on the API specification at:
4
+ https://api-docs.cognite.com/20230101/tag/Views/operation/ApplyViews
5
+ """
6
+
7
+ from collections.abc import Iterable, Sequence
8
+
9
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, Endpoint, PagedResponse
10
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
11
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ViewFilter
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.data_modeling import (
13
+ ViewReference,
14
+ ViewRequest,
15
+ ViewResponse,
16
+ )
17
+
18
+
19
+ class ViewsAPI(CDFResourceAPI[ViewReference, ViewRequest, ViewResponse]):
20
+ """API for managing CDF data modeling views.
21
+
22
+ Views use an apply/upsert pattern for create and update operations.
23
+ """
24
+
25
+ def __init__(self, http_client: HTTPClient) -> None:
26
+ super().__init__(
27
+ http_client=http_client,
28
+ method_endpoint_map={
29
+ "upsert": Endpoint(method="POST", path="/models/views", item_limit=100),
30
+ "retrieve": Endpoint(method="POST", path="/models/views/byids", item_limit=100),
31
+ "delete": Endpoint(method="POST", path="/models/views/delete", item_limit=100),
32
+ "list": Endpoint(method="GET", path="/models/views", item_limit=1000),
33
+ },
34
+ )
35
+
36
+ def _validate_page_response(
37
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
38
+ ) -> PagedResponse[ViewResponse]:
39
+ return PagedResponse[ViewResponse].model_validate_json(response.body)
40
+
41
+ def create(self, items: Sequence[ViewRequest]) -> list[ViewResponse]:
42
+ """Apply (create or update) views in CDF.
43
+
44
+ Args:
45
+ items: List of ViewRequest objects to apply.
46
+
47
+ Returns:
48
+ List of applied ViewResponse objects.
49
+ """
50
+ return self._request_item_response(items, "upsert")
51
+
52
+ def update(self, items: Sequence[ViewRequest]) -> list[ViewResponse]:
53
+ """Apply (create or update) views in CDF.
54
+
55
+ Args:
56
+ items: List of ViewRequest objects to apply.
57
+ Returns:
58
+ List of applied ViewResponse objects.
59
+ """
60
+ return self._request_item_response(items, "upsert")
61
+
62
+ def retrieve(self, items: Sequence[ViewReference], include_inherited_properties: bool = True) -> list[ViewResponse]:
63
+ """Retrieve views from CDF.
64
+
65
+ Args:
66
+ items: List of ViewReference objects to retrieve.
67
+ include_inherited_properties: Whether to include inherited properties.
68
+
69
+ Returns:
70
+ List of retrieved ViewResponse objects.
71
+ """
72
+ return self._request_item_response(
73
+ items, method="retrieve", extra_body={"includeInheritedProperties": include_inherited_properties}
74
+ )
75
+
76
+ def delete(self, items: Sequence[ViewReference]) -> None:
77
+ """Delete views from CDF.
78
+
79
+ Args:
80
+ items: List of ViewReference objects to delete.
81
+ """
82
+ self._request_no_response(items, "delete")
83
+
84
+ def paginate(
85
+ self,
86
+ filter: ViewFilter | None = None,
87
+ limit: int = 100,
88
+ cursor: str | None = None,
89
+ ) -> PagedResponse[ViewResponse]:
90
+ """Get a page of views from CDF.
91
+
92
+ Args:
93
+ filter: ViewFilter to filter views.
94
+ limit: Maximum number of views to return.
95
+ cursor: Cursor for pagination.
96
+
97
+ Returns:
98
+ PagedResponse of ViewResponse objects.
99
+ """
100
+ return self._paginate(
101
+ cursor=cursor,
102
+ limit=limit,
103
+ params=filter.dump() if filter else None,
104
+ )
105
+
106
+ def iterate(
107
+ self,
108
+ filter: ViewFilter | None = None,
109
+ limit: int | None = None,
110
+ ) -> Iterable[list[ViewResponse]]:
111
+ """Iterate over all views in CDF.
112
+
113
+ Args:
114
+ filter: ViewFilter to filter views.
115
+ limit: Maximum total number of views to return.
116
+
117
+ Returns:
118
+ Iterable of lists of ViewResponse objects.
119
+ """
120
+ return self._iterate(
121
+ limit=limit,
122
+ params=filter.dump() if filter else None,
123
+ )
124
+
125
+ def list(
126
+ self,
127
+ filter: ViewFilter | None = None,
128
+ limit: int | None = None,
129
+ ) -> list[ViewResponse]:
130
+ """List all views in CDF.
131
+
132
+ Args:
133
+ filter: ViewFilter to filter views.
134
+ limit: Maximum total number of views to return.
135
+
136
+ Returns:
137
+ List of ViewResponse objects.
138
+ """
139
+ return self._list(limit=limit, params=filter.dump() if filter else None)
@@ -0,0 +1,128 @@
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 ExternalId
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.workflow_trigger import (
9
+ WorkflowTriggerRequest,
10
+ WorkflowTriggerResponse,
11
+ )
12
+
13
+
14
+ class WorkflowTriggersAPI(CDFResourceAPI[ExternalId, WorkflowTriggerRequest, WorkflowTriggerResponse]):
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/triggers", item_limit=1),
20
+ "delete": Endpoint(method="POST", path="/workflows/triggers/delete", item_limit=1),
21
+ "list": Endpoint(method="GET", path="/workflows/triggers", item_limit=1000),
22
+ },
23
+ )
24
+
25
+ def _validate_page_response(
26
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
27
+ ) -> PagedResponse[WorkflowTriggerResponse]:
28
+ return PagedResponse[WorkflowTriggerResponse].model_validate_json(response.body)
29
+
30
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
31
+ return ResponseItems[ExternalId].model_validate_json(response.body)
32
+
33
+ def create(self, items: Sequence[WorkflowTriggerRequest]) -> list[WorkflowTriggerResponse]:
34
+ """Create or update workflow triggers in CDF.
35
+
36
+ Args:
37
+ items: List of WorkflowTriggerRequest objects to create or update.
38
+ Returns:
39
+ List of created/updated WorkflowTriggerResponse objects.
40
+ """
41
+ return self._request_item_response(items, "upsert")
42
+
43
+ # This is a duplicate of the create method, included to standardize the API interface.
44
+ def update(self, items: Sequence[WorkflowTriggerRequest]) -> list[WorkflowTriggerResponse]:
45
+ """Create or update workflow triggers in CDF.
46
+
47
+ Args:
48
+ items: List of WorkflowTriggerRequest objects to create or update.
49
+ Returns:
50
+ List of created/updated WorkflowTriggerResponse objects.
51
+ """
52
+ return self.create(items)
53
+
54
+ def delete(self, items: Sequence[ExternalId]) -> None:
55
+ """Delete workflow triggers from CDF.
56
+
57
+ Args:
58
+ items: List of ExternalId objects to delete.
59
+ """
60
+ self._request_no_response(items, "delete")
61
+
62
+ def paginate(
63
+ self,
64
+ workflow_external_id: str | None = None,
65
+ workflow_version: str | None = None,
66
+ limit: int = 100,
67
+ cursor: str | None = None,
68
+ ) -> PagedResponse[WorkflowTriggerResponse]:
69
+ """Iterate over all workflow triggers in CDF.
70
+
71
+ Args:
72
+ workflow_external_id: Filter by workflow external ID.
73
+ workflow_version: Filter by workflow version.
74
+ limit: Maximum number of items to return.
75
+ cursor: Cursor for pagination.
76
+
77
+ Returns:
78
+ PagedResponse of WorkflowTriggerResponse objects.
79
+ """
80
+ params: dict[str, Any] = {}
81
+ if workflow_external_id:
82
+ params["workflowExternalId"] = workflow_external_id
83
+ if workflow_version:
84
+ params["workflowVersion"] = workflow_version
85
+
86
+ return self._paginate(
87
+ cursor=cursor,
88
+ limit=limit,
89
+ params=params,
90
+ )
91
+
92
+ def iterate(
93
+ self,
94
+ workflow_external_id: str | None = None,
95
+ workflow_version: str | None = None,
96
+ limit: int = 100,
97
+ ) -> Iterable[list[WorkflowTriggerResponse]]:
98
+ """Iterate over all workflow triggers in CDF.
99
+
100
+ Args:
101
+ workflow_external_id: Filter by workflow external ID.
102
+ workflow_version: Filter by workflow version.
103
+ limit: Maximum number of items to return per page.
104
+
105
+ Returns:
106
+ Iterable of lists of WorkflowTriggerResponse objects.
107
+ """
108
+ params: dict[str, Any] = {}
109
+ if workflow_external_id:
110
+ params["workflowExternalId"] = workflow_external_id
111
+ if workflow_version:
112
+ params["workflowVersion"] = workflow_version
113
+
114
+ return self._iterate(
115
+ limit=limit,
116
+ params=params,
117
+ )
118
+
119
+ def list(
120
+ self,
121
+ limit: int | None = 100,
122
+ ) -> list[WorkflowTriggerResponse]:
123
+ """List all workflow triggers in CDF.
124
+
125
+ Returns:
126
+ List of WorkflowTriggerResponse objects.
127
+ """
128
+ return self._list(limit=limit)