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,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
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 | ItemsSuccessResponse2) -> 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,16 +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
6
  from cognite_toolkit._cdf_tk.client.http_client import (
9
7
  HTTPClient,
10
8
  ItemsSuccessResponse2,
11
9
  RequestMessage2,
12
10
  SuccessResponse2,
13
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
14
15
 
15
16
 
16
17
  class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest, FileMetadataResponse]):
@@ -26,7 +27,9 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
26
27
  },
27
28
  )
28
29
 
29
- def _page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[FileMetadataResponse]:
30
+ def _validate_page_response(
31
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
32
+ ) -> PagedResponse[FileMetadataResponse]:
30
33
  return PagedResponse[FileMetadataResponse].model_validate_json(response.body)
31
34
 
32
35
  def _reference_response(self, response: SuccessResponse2) -> ResponseItems[InternalOrExternalId]:
@@ -56,7 +59,7 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
56
59
  )
57
60
  response = self._http_client.request_single_retries(request)
58
61
  result = response.get_success_or_raise()
59
- results.extend(self._page_response(result).items)
62
+ results.append(FileMetadataResponse.model_validate_json(result.body))
60
63
  return results
61
64
 
62
65
  def retrieve(
@@ -97,10 +100,9 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
97
100
  """
98
101
  self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
99
102
 
100
- def iterate(
103
+ def paginate(
101
104
  self,
102
- data_set_external_ids: list[str] | None = None,
103
- asset_subtree_external_ids: list[str] | None = None,
105
+ filter: ClassicFilter | None = None,
104
106
  directory_prefix: str | None = None,
105
107
  uploaded: bool | None = None,
106
108
  limit: int = 100,
@@ -109,8 +111,7 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
109
111
  """Iterate over file metadata in CDF.
110
112
 
111
113
  Args:
112
- data_set_external_ids: Filter by data set external IDs.
113
- asset_subtree_external_ids: Filter by asset subtree external IDs.
114
+ filter: Filter by data set IDs and/or asset subtree IDs.
114
115
  directory_prefix: Filter by directory prefix.
115
116
  uploaded: Filter by upload status.
116
117
  limit: Maximum number of items to return per page.
@@ -119,22 +120,47 @@ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest,
119
120
  Returns:
120
121
  PagedResponse of FileMetadataResponse objects.
121
122
  """
122
- filter_: dict[str, Any] = {}
123
- if asset_subtree_external_ids:
124
- filter_["assetSubtreeIds"] = [{"externalId": ext_id} for ext_id in asset_subtree_external_ids]
125
- if data_set_external_ids:
126
- filter_["dataSetIds"] = [{"externalId": ds_id} for ds_id in data_set_external_ids]
123
+ filter_: dict[str, Any] = filter.dump() if filter else {}
127
124
  if directory_prefix is not None:
128
125
  filter_["directoryPrefix"] = directory_prefix
129
126
  if uploaded is not None:
130
127
  filter_["uploaded"] = uploaded
131
128
 
132
- return self._iterate(
129
+ return self._paginate(
133
130
  cursor=cursor,
134
131
  limit=limit,
135
132
  body={"filter": filter_ or None},
136
133
  )
137
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
+
138
164
  def list(
139
165
  self,
140
166
  limit: int | None = 100,
@@ -0,0 +1,115 @@
1
+ """Function Schedules API for managing CDF function schedules.
2
+
3
+ Based on the API specification at:
4
+ https://api-docs.cognite.com/20230101/tag/Function-schedules/operation/postFunctionSchedules
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.resource_classes.function_schedule import (
12
+ FunctionScheduleRequest,
13
+ FunctionScheduleResponse,
14
+ )
15
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalId
16
+
17
+
18
+ class FunctionSchedulesAPI(CDFResourceAPI[InternalId, FunctionScheduleRequest, FunctionScheduleResponse]):
19
+ """API for managing CDF function schedules.
20
+
21
+ Note: Function schedules do not support update operations.
22
+ """
23
+
24
+ def __init__(self, http_client: HTTPClient) -> None:
25
+ super().__init__(
26
+ http_client=http_client,
27
+ method_endpoint_map={
28
+ "create": Endpoint(method="POST", path="/functions/schedules", item_limit=1),
29
+ "retrieve": Endpoint(method="POST", path="/functions/schedules/byids", item_limit=10_000),
30
+ "delete": Endpoint(method="POST", path="/functions/schedules/delete", item_limit=10_000),
31
+ "list": Endpoint(method="POST", path="/functions/schedules/list", item_limit=1000),
32
+ },
33
+ )
34
+
35
+ def _validate_page_response(
36
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
37
+ ) -> PagedResponse[FunctionScheduleResponse]:
38
+ return PagedResponse[FunctionScheduleResponse].model_validate_json(response.body)
39
+
40
+ def create(self, items: Sequence[FunctionScheduleRequest]) -> list[FunctionScheduleResponse]:
41
+ """Create function schedules in CDF.
42
+
43
+ Args:
44
+ items: List of FunctionScheduleRequest objects to create.
45
+
46
+ Returns:
47
+ List of created FunctionScheduleResponse objects.
48
+ """
49
+ return self._request_item_response(items, "create")
50
+
51
+ def retrieve(self, items: Sequence[InternalId], ignore_unknown_ids: bool = False) -> list[FunctionScheduleResponse]:
52
+ """Retrieve function schedules from CDF by ID.
53
+
54
+ Args:
55
+ items: List of InternalId objects to retrieve.
56
+ ignore_unknown_ids: Whether to ignore unknown IDs.
57
+
58
+ Returns:
59
+ List of retrieved FunctionScheduleResponse objects.
60
+ """
61
+ return self._request_item_response(
62
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
63
+ )
64
+
65
+ def delete(self, items: Sequence[InternalId]) -> None:
66
+ """Delete function schedules from CDF.
67
+
68
+ Args:
69
+ items: List of InternalId objects to delete.
70
+ """
71
+ self._request_no_response(items, "delete")
72
+
73
+ def paginate(
74
+ self,
75
+ limit: int = 100,
76
+ cursor: str | None = None,
77
+ ) -> PagedResponse[FunctionScheduleResponse]:
78
+ """Get a page of function schedules from CDF.
79
+
80
+ Args:
81
+ limit: Maximum number of function schedules to return.
82
+ cursor: Cursor for pagination.
83
+
84
+ Returns:
85
+ PagedResponse of FunctionScheduleResponse objects.
86
+ """
87
+ return self._paginate(
88
+ cursor=cursor,
89
+ limit=limit,
90
+ )
91
+
92
+ def iterate(
93
+ self,
94
+ limit: int | None = None,
95
+ ) -> Iterable[list[FunctionScheduleResponse]]:
96
+ """Iterate over all function schedules in CDF.
97
+
98
+ Args:
99
+ limit: Maximum total number of function schedules to return.
100
+
101
+ Returns:
102
+ Iterable of lists of FunctionScheduleResponse objects.
103
+ """
104
+ return self._iterate(limit=limit)
105
+
106
+ def list(self, limit: int | None = None) -> list[FunctionScheduleResponse]:
107
+ """List all function schedules in CDF.
108
+
109
+ Args:
110
+ limit: Maximum total number of function schedules to return.
111
+
112
+ Returns:
113
+ List of FunctionScheduleResponse objects.
114
+ """
115
+ return self._list(limit=limit)