cognite-toolkit 0.7.39__py3-none-any.whl → 0.7.51__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 (261) 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/apps/_migrate_app.py +6 -6
  4. cognite_toolkit/_cdf_tk/builders/_function.py +81 -9
  5. cognite_toolkit/_cdf_tk/builders/_raw.py +1 -1
  6. cognite_toolkit/_cdf_tk/client/_resource_base.py +187 -0
  7. cognite_toolkit/_cdf_tk/client/_toolkit_client.py +37 -5
  8. cognite_toolkit/_cdf_tk/client/api/agents.py +107 -0
  9. cognite_toolkit/_cdf_tk/client/api/annotations.py +129 -0
  10. cognite_toolkit/_cdf_tk/client/api/assets.py +130 -0
  11. cognite_toolkit/_cdf_tk/client/api/containers.py +132 -0
  12. cognite_toolkit/_cdf_tk/client/api/data_models.py +137 -0
  13. cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
  14. cognite_toolkit/_cdf_tk/client/api/events.py +129 -0
  15. cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
  16. cognite_toolkit/_cdf_tk/client/api/filemetadata.py +176 -0
  17. cognite_toolkit/_cdf_tk/client/api/function_schedules.py +115 -0
  18. cognite_toolkit/_cdf_tk/client/api/functions.py +113 -0
  19. cognite_toolkit/_cdf_tk/client/api/graphql_data_models.py +167 -0
  20. cognite_toolkit/_cdf_tk/client/api/groups.py +121 -0
  21. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
  22. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
  23. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
  24. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
  25. cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
  26. cognite_toolkit/_cdf_tk/client/api/infield.py +8 -8
  27. cognite_toolkit/_cdf_tk/client/api/instances.py +139 -0
  28. cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
  29. cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +3 -3
  30. cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
  31. cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
  32. cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
  33. cognite_toolkit/_cdf_tk/client/api/legacy/extended_functions.py +1 -1
  34. cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
  35. cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
  36. cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
  37. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
  38. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
  39. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
  40. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
  41. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
  42. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
  43. cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
  44. cognite_toolkit/_cdf_tk/client/api/location_filters.py +177 -0
  45. cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
  46. cognite_toolkit/_cdf_tk/client/api/project.py +2 -2
  47. cognite_toolkit/_cdf_tk/client/api/raw.py +204 -0
  48. cognite_toolkit/_cdf_tk/client/api/relationships.py +133 -0
  49. cognite_toolkit/_cdf_tk/client/api/robotics.py +19 -0
  50. cognite_toolkit/_cdf_tk/client/api/robotics_capabilities.py +127 -0
  51. cognite_toolkit/_cdf_tk/client/api/robotics_data_postprocessing.py +138 -0
  52. cognite_toolkit/_cdf_tk/client/api/robotics_frames.py +122 -0
  53. cognite_toolkit/_cdf_tk/client/api/robotics_locations.py +127 -0
  54. cognite_toolkit/_cdf_tk/client/api/robotics_maps.py +122 -0
  55. cognite_toolkit/_cdf_tk/client/api/robotics_robots.py +122 -0
  56. cognite_toolkit/_cdf_tk/client/api/search_config.py +101 -0
  57. cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
  58. cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
  59. cognite_toolkit/_cdf_tk/client/api/simulator_models.py +154 -0
  60. cognite_toolkit/_cdf_tk/client/api/simulators.py +8 -0
  61. cognite_toolkit/_cdf_tk/client/api/spaces.py +117 -0
  62. cognite_toolkit/_cdf_tk/client/api/streams.py +65 -57
  63. cognite_toolkit/_cdf_tk/client/api/three_d.py +300 -283
  64. cognite_toolkit/_cdf_tk/client/api/timeseries.py +137 -0
  65. cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
  66. cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
  67. cognite_toolkit/_cdf_tk/client/api/views.py +139 -0
  68. cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
  69. cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
  70. cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
  71. cognite_toolkit/_cdf_tk/client/cdf_client/__init__.py +10 -0
  72. cognite_toolkit/_cdf_tk/client/cdf_client/api.py +358 -0
  73. cognite_toolkit/_cdf_tk/client/cdf_client/responses.py +38 -0
  74. cognite_toolkit/_cdf_tk/{utils → client}/http_client/__init__.py +9 -7
  75. cognite_toolkit/_cdf_tk/{utils → client}/http_client/_client.py +23 -14
  76. cognite_toolkit/_cdf_tk/{utils → client}/http_client/_data_classes.py +12 -2
  77. cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +151 -0
  78. cognite_toolkit/_cdf_tk/client/http_client/_exception.py +13 -0
  79. cognite_toolkit/_cdf_tk/client/http_client/_item_classes.py +118 -0
  80. cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
  81. cognite_toolkit/_cdf_tk/client/request_classes/filters.py +113 -0
  82. cognite_toolkit/_cdf_tk/client/request_classes/graphql.py +28 -0
  83. cognite_toolkit/_cdf_tk/client/resource_classes/agent.py +130 -0
  84. cognite_toolkit/_cdf_tk/client/resource_classes/annotation.py +79 -0
  85. cognite_toolkit/_cdf_tk/client/resource_classes/apm_config.py +128 -0
  86. cognite_toolkit/_cdf_tk/client/resource_classes/asset.py +47 -0
  87. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +1 -1
  88. cognite_toolkit/_cdf_tk/client/resource_classes/cognite_file.py +53 -0
  89. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/__init__.py +168 -0
  90. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_constraints.py +37 -0
  91. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_container.py +50 -0
  92. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_model.py +73 -0
  93. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_types.py +116 -0
  94. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_indexes.py +26 -0
  95. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_instance.py +154 -0
  96. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_references.py +86 -0
  97. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_space.py +26 -0
  98. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view.py +143 -0
  99. cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view_property.py +152 -0
  100. cognite_toolkit/_cdf_tk/client/resource_classes/dataset.py +35 -0
  101. cognite_toolkit/_cdf_tk/client/resource_classes/event.py +40 -0
  102. cognite_toolkit/_cdf_tk/client/resource_classes/extraction_pipeline.py +59 -0
  103. cognite_toolkit/_cdf_tk/client/resource_classes/filemetadata.py +52 -0
  104. cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
  105. cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +65 -0
  106. cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
  107. cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
  108. cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
  109. cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
  110. cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
  111. cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +63 -0
  112. cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
  113. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_destination.py +34 -0
  114. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_job.py +134 -0
  115. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_mapping.py +72 -0
  116. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/__init__.py +63 -0
  117. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_auth.py +63 -0
  118. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_base.py +26 -0
  119. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_certificate.py +20 -0
  120. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_eventhub.py +31 -0
  121. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_kafka.py +53 -0
  122. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_mqtt.py +36 -0
  123. cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_rest.py +49 -0
  124. cognite_toolkit/_cdf_tk/client/resource_classes/identifiers.py +59 -0
  125. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +1 -1
  126. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +35 -1
  127. cognite_toolkit/_cdf_tk/client/resource_classes/label.py +27 -0
  128. cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
  129. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +48 -15
  130. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
  131. cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +84 -0
  132. cognite_toolkit/_cdf_tk/client/resource_classes/raw.py +44 -0
  133. cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +49 -0
  134. cognite_toolkit/_cdf_tk/client/resource_classes/resource_view_mapping.py +38 -0
  135. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
  136. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
  137. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
  138. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
  139. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
  140. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
  141. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +65 -0
  142. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +58 -0
  143. cognite_toolkit/_cdf_tk/client/resource_classes/search_config.py +54 -0
  144. cognite_toolkit/_cdf_tk/client/resource_classes/securitycategory.py +24 -0
  145. cognite_toolkit/_cdf_tk/client/resource_classes/sequence.py +45 -0
  146. cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
  147. cognite_toolkit/_cdf_tk/client/resource_classes/simulator_model.py +50 -0
  148. cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
  149. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +9 -26
  150. cognite_toolkit/_cdf_tk/client/resource_classes/three_d.py +135 -0
  151. cognite_toolkit/_cdf_tk/client/resource_classes/timeseries.py +52 -0
  152. cognite_toolkit/_cdf_tk/client/resource_classes/transformation.py +140 -0
  153. cognite_toolkit/_cdf_tk/client/resource_classes/workflow.py +27 -0
  154. cognite_toolkit/_cdf_tk/client/resource_classes/workflow_trigger.py +63 -0
  155. cognite_toolkit/_cdf_tk/client/resource_classes/workflow_version.py +155 -0
  156. cognite_toolkit/_cdf_tk/client/testing.py +31 -2
  157. cognite_toolkit/_cdf_tk/commands/_migrate/command.py +103 -108
  158. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +22 -15
  159. cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
  160. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +11 -10
  161. cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +148 -57
  162. cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
  163. cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +22 -39
  164. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +29 -27
  165. cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
  166. cognite_toolkit/_cdf_tk/commands/_purge.py +8 -8
  167. cognite_toolkit/_cdf_tk/commands/_upload.py +1 -1
  168. cognite_toolkit/_cdf_tk/commands/build_cmd.py +12 -2
  169. cognite_toolkit/_cdf_tk/commands/build_v2/_module_parser.py +138 -0
  170. cognite_toolkit/_cdf_tk/commands/build_v2/_modules_parser.py +163 -0
  171. cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +83 -96
  172. cognite_toolkit/_cdf_tk/commands/build_v2/{build_input.py → build_parameters.py} +8 -22
  173. cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_modules.py +27 -0
  174. cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_resource.py +22 -0
  175. cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
  176. cognite_toolkit/_cdf_tk/commands/pull.py +97 -2
  177. cognite_toolkit/_cdf_tk/commands/run.py +1 -1
  178. cognite_toolkit/_cdf_tk/cruds/__init__.py +16 -6
  179. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +9 -5
  180. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +2 -0
  181. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +6 -2
  182. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +70 -89
  183. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
  184. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
  185. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
  186. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +14 -7
  187. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +50 -59
  188. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
  189. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
  190. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +4 -3
  191. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
  192. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
  193. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +5 -4
  194. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
  195. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +122 -0
  196. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +15 -31
  197. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +42 -47
  198. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
  199. cognite_toolkit/_cdf_tk/data_classes/__init__.py +3 -0
  200. cognite_toolkit/_cdf_tk/data_classes/_issues.py +36 -0
  201. cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +2 -1
  202. cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +4 -0
  203. cognite_toolkit/_cdf_tk/feature_flags.py +8 -0
  204. cognite_toolkit/_cdf_tk/resource_classes/__init__.py +2 -0
  205. cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
  206. cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
  207. cognite_toolkit/_cdf_tk/resource_classes/simulator_model.py +17 -0
  208. cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +13 -4
  209. cognite_toolkit/_cdf_tk/storageio/_applications.py +53 -15
  210. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +117 -107
  211. cognite_toolkit/_cdf_tk/storageio/_base.py +3 -1
  212. cognite_toolkit/_cdf_tk/storageio/_datapoints.py +7 -7
  213. cognite_toolkit/_cdf_tk/storageio/_file_content.py +64 -54
  214. cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
  215. cognite_toolkit/_cdf_tk/storageio/_raw.py +1 -1
  216. cognite_toolkit/_cdf_tk/storageio/logger.py +162 -0
  217. cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +2 -0
  218. cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +20 -0
  219. cognite_toolkit/_cdf_tk/utils/__init__.py +11 -1
  220. cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
  221. cognite_toolkit/_cdf_tk/utils/interactive_select.py +8 -6
  222. cognite_toolkit/_cdf_tk/utils/modules.py +7 -0
  223. cognite_toolkit/_cdf_tk/utils/pip_validator.py +96 -0
  224. cognite_toolkit/_cdf_tk/utils/useful_types.py +4 -7
  225. cognite_toolkit/_cdf_tk/utils/useful_types2.py +14 -0
  226. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  227. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  228. cognite_toolkit/_resources/cdf.toml +1 -1
  229. cognite_toolkit/_version.py +1 -1
  230. {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/METADATA +13 -3
  231. cognite_toolkit-0.7.51.dist-info/RECORD +445 -0
  232. {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/WHEEL +2 -2
  233. cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -30
  234. cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -67
  235. cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -112
  236. cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +0 -27
  237. cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +0 -247
  238. cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -4
  239. cognite_toolkit-0.7.39.dist-info/RECORD +0 -322
  240. /cognite_toolkit/_cdf_tk/{utils → client}/http_client/_tracker.py +0 -0
  241. /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
  242. /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
  243. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
  244. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
  245. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
  246. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
  247. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
  248. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
  249. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
  250. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
  251. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
  252. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
  253. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
  254. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
  255. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
  256. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
  257. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
  258. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
  259. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
  260. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
  261. {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,177 @@
1
+ from collections.abc import Iterable, Sequence
2
+
3
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, PagedResponse
4
+ from cognite_toolkit._cdf_tk.client.cdf_client.api import Endpoint
5
+ from cognite_toolkit._cdf_tk.client.http_client import (
6
+ HTTPClient,
7
+ ItemsSuccessResponse2,
8
+ RequestMessage2,
9
+ SuccessResponse2,
10
+ )
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalId
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.location_filter import (
13
+ LocationFilterRequest,
14
+ LocationFilterResponse,
15
+ )
16
+ from cognite_toolkit._cdf_tk.utils.collection import chunker_sequence
17
+
18
+
19
+ class LocationFiltersAPI(CDFResourceAPI[InternalId, LocationFilterRequest, LocationFilterResponse]):
20
+ """API for managing Location Filters using the CDFResourceAPI pattern.
21
+
22
+ This API manages location filter configurations at:
23
+ /apps/v1/projects/{project}/storage/config/locationfilters
24
+ """
25
+
26
+ BASE_PATH = "/storage/config/locationfilters"
27
+
28
+ def __init__(self, http_client: HTTPClient) -> None:
29
+ super().__init__(
30
+ http_client=http_client,
31
+ method_endpoint_map={
32
+ "create": Endpoint(method="POST", path=self.BASE_PATH, item_limit=1),
33
+ "retrieve": Endpoint(method="POST", path=f"{self.BASE_PATH}/byids", item_limit=1000),
34
+ "update": Endpoint(method="PUT", path=f"{self.BASE_PATH}/{{id}}", item_limit=1),
35
+ "delete": Endpoint(method="DELETE", path=f"{self.BASE_PATH}/{{id}}", item_limit=1),
36
+ "list": Endpoint(method="POST", path=f"{self.BASE_PATH}/list", item_limit=1000),
37
+ },
38
+ )
39
+
40
+ def _make_url(self, path: str = "") -> str:
41
+ """Create the full URL for this resource endpoint using the apps URL format."""
42
+ return self._http_client.config.create_app_url(path)
43
+
44
+ def _validate_page_response(
45
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
46
+ ) -> PagedResponse[LocationFilterResponse]:
47
+ return PagedResponse[LocationFilterResponse].model_validate_json(response.body)
48
+
49
+ def create(self, items: Sequence[LocationFilterRequest]) -> list[LocationFilterResponse]:
50
+ """Create a new location filter.
51
+
52
+ Args:
53
+ items: The location filter to create.
54
+
55
+ Returns:
56
+ The created location filter.
57
+ """
58
+ endpoint = self._method_endpoint_map["create"]
59
+ results: list[LocationFilterResponse] = []
60
+ for item in items:
61
+ request = RequestMessage2(
62
+ endpoint_url=self._make_url(endpoint.path),
63
+ method=endpoint.method,
64
+ body_content=item.model_dump(mode="json", by_alias=True),
65
+ )
66
+ result = self._http_client.request_single_retries(request)
67
+ response = result.get_success_or_raise()
68
+ results.append(LocationFilterResponse.model_validate_json(response.body))
69
+ return results
70
+
71
+ def retrieve(self, items: Sequence[InternalId]) -> list[LocationFilterResponse]:
72
+ """Retrieve a single location filter by ID.
73
+
74
+ Args:
75
+ items: The ID of the location filter to retrieve.
76
+
77
+ Returns:
78
+ The retrieved location filter.
79
+ """
80
+ endpoint = self._method_endpoint_map["retrieve"]
81
+ results: list[LocationFilterResponse] = []
82
+ for chunk in chunker_sequence(items, endpoint.item_limit):
83
+ request = RequestMessage2(
84
+ endpoint_url=self._make_url(endpoint.path),
85
+ method=endpoint.method,
86
+ body_content={"ids": [item.id for item in chunk]},
87
+ )
88
+ result = self._http_client.request_single_retries(request)
89
+ response = result.get_success_or_raise()
90
+ results.extend(self._validate_page_response(response).items)
91
+ return results
92
+
93
+ def update(self, items: Sequence[LocationFilterRequest]) -> list[LocationFilterResponse]:
94
+ """Update an existing location filter.
95
+
96
+ Args:
97
+ items: The updated location filter data.
98
+
99
+ Returns:
100
+ The updated location filter.
101
+ """
102
+ endpoint = self._method_endpoint_map["update"]
103
+ results: list[LocationFilterResponse] = []
104
+ for item in items:
105
+ if item.id is None:
106
+ raise ValueError("Item must have an ID for update operation.")
107
+ request = RequestMessage2(
108
+ endpoint_url=self._make_url(endpoint.path.format(id=item.id)),
109
+ method=endpoint.method,
110
+ body_content=item.model_dump(mode="json", by_alias=True),
111
+ )
112
+ result = self._http_client.request_single_retries(request)
113
+ response = result.get_success_or_raise()
114
+ parsed = LocationFilterResponse.model_validate_json(response.body)
115
+ parsed.id = item.id
116
+ results.append(parsed)
117
+ return results
118
+
119
+ def delete(self, items: Sequence[InternalId]) -> list[LocationFilterResponse]:
120
+ """Delete a location filter.
121
+
122
+ Args:
123
+ items: The ID of the location filter to delete.
124
+
125
+ Returns:
126
+ list[LocationFilterResponse]: The deleted location filters.
127
+ """
128
+ endpoint = self._method_endpoint_map["delete"]
129
+ results: list[LocationFilterResponse] = []
130
+ for item in items:
131
+ request = RequestMessage2(
132
+ endpoint_url=self._make_url(endpoint.path.format(id=item.id)),
133
+ method=endpoint.method,
134
+ )
135
+ result = self._http_client.request_single_retries(request)
136
+ response = result.get_success_or_raise()
137
+ results.append(LocationFilterResponse.model_validate_json(response.body))
138
+ return results
139
+
140
+ def paginate(
141
+ self,
142
+ flat: bool = True,
143
+ ) -> PagedResponse[LocationFilterResponse]:
144
+ """Get a single page of location filters.
145
+
146
+ Args:
147
+ flat: Whether to return a flat list (default True).
148
+
149
+ Returns:
150
+ PagedResponse of LocationFilterResponse objects.
151
+ """
152
+ return self._paginate(cursor=None, limit=100, body={"flat": flat})
153
+
154
+ def iterate(
155
+ self,
156
+ flat: bool = True,
157
+ ) -> Iterable[list[LocationFilterResponse]]:
158
+ """Iterate over all location filters.
159
+
160
+ Args:
161
+ flat: Whether to return a flat list (default True).
162
+
163
+ Returns:
164
+ Iterable of lists of LocationFilterResponse objects.
165
+ """
166
+ return self._iterate(limit=None, body={"flat": flat})
167
+
168
+ def list(self, flat: bool = True) -> list[LocationFilterResponse]:
169
+ """List all location filters.
170
+
171
+ Args:
172
+ flat: Whether to return a flat list (default True).
173
+
174
+ Returns:
175
+ List of LocationFilterResponse objects.
176
+ """
177
+ return self._list(limit=None, body={"flat": flat})
@@ -17,7 +17,7 @@ from cognite.client.data_classes.data_modeling import (
17
17
  from cognite.client.utils.useful_types import SequenceNotStr
18
18
 
19
19
  from cognite_toolkit._cdf_tk.client.api.legacy.extended_data_modeling import ExtendedInstancesAPI
20
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.migration import (
20
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.migration import (
21
21
  AssetCentricId,
22
22
  CreatedSourceSystem,
23
23
  InstanceSource,
@@ -1,8 +1,8 @@
1
1
  from cognite.client import CogniteClient
2
2
 
3
3
  from cognite_toolkit._cdf_tk.client.config import ToolkitClientConfig
4
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.project import ProjectStatusList
5
- from cognite_toolkit._cdf_tk.utils.http_client import HTTPClient, RequestMessage2
4
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, RequestMessage2
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.project import ProjectStatusList
6
6
 
7
7
 
8
8
  class ProjectAPI:
@@ -0,0 +1,204 @@
1
+ from collections.abc import Iterable, Sequence
2
+
3
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, Endpoint, PagedResponse, ResponseItems
4
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.raw import RAWDatabase, RAWTable
6
+
7
+
8
+ class RawDatabasesAPI(CDFResourceAPI[RAWDatabase, RAWDatabase, RAWDatabase]):
9
+ """API for managing RAW databases in CDF.
10
+
11
+ This API provides methods to create, list, and delete RAW databases.
12
+ """
13
+
14
+ def __init__(self, http_client: HTTPClient) -> None:
15
+ super().__init__(
16
+ http_client,
17
+ {
18
+ "create": Endpoint(method="POST", path="/raw/dbs", item_limit=1000),
19
+ "delete": Endpoint(method="POST", path="/raw/dbs/delete", item_limit=1000),
20
+ "list": Endpoint(method="GET", path="/raw/dbs", item_limit=1000),
21
+ },
22
+ )
23
+
24
+ def _validate_page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[RAWDatabase]:
25
+ return PagedResponse[RAWDatabase].model_validate_json(response.body)
26
+
27
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[RAWDatabase]:
28
+ return ResponseItems[RAWDatabase].model_validate_json(response.body)
29
+
30
+ def create(self, items: Sequence[RAWDatabase]) -> list[RAWDatabase]:
31
+ """Create databases in CDF.
32
+
33
+ Args:
34
+ items: List of RAWDatabase objects to create.
35
+
36
+ Returns:
37
+ List of created RAWDatabase objects.
38
+ """
39
+ return self._request_item_response(list(items), "create")
40
+
41
+ def delete(self, items: Sequence[RAWDatabase], recursive: bool = False) -> None:
42
+ """Delete databases from CDF.
43
+
44
+ Args:
45
+ items: List of RAWDatabase objects to delete.
46
+ recursive: Whether to delete tables within the database recursively.
47
+ """
48
+ self._request_no_response(list(items), "delete", extra_body={"recursive": recursive})
49
+
50
+ def paginate(
51
+ self,
52
+ limit: int = 100,
53
+ cursor: str | None = None,
54
+ ) -> PagedResponse[RAWDatabase]:
55
+ """Iterate over all databases in CDF.
56
+
57
+ Args:
58
+ limit: Maximum number of items to return.
59
+ cursor: Cursor for pagination.
60
+
61
+ Returns:
62
+ PagedResponse of RAWDatabase objects.
63
+ """
64
+ return self._paginate(limit=limit, cursor=cursor)
65
+
66
+ def iterate(
67
+ self,
68
+ limit: int = 100,
69
+ ) -> Iterable[list[RAWDatabase]]:
70
+ """Iterate over all databases in CDF.
71
+
72
+ Args:
73
+ limit: Maximum number of items to return per page.
74
+
75
+ Returns:
76
+ Iterable of lists of RAWDatabase objects.
77
+ """
78
+ return self._iterate(limit=limit)
79
+
80
+ def list(self, limit: int | None = None) -> list[RAWDatabase]:
81
+ """List all databases in CDF.
82
+
83
+ Args:
84
+ limit: Maximum number of databases to return. If None, returns all databases.
85
+
86
+ Returns:
87
+ List of RAWDatabase objects.
88
+ """
89
+ return self._list(limit=limit)
90
+
91
+
92
+ class RawTablesAPI(CDFResourceAPI[RAWTable, RAWTable, RAWTable]):
93
+ """API for managing RAW tables in CDF.
94
+
95
+ This API provides methods to create, list, and delete RAW tables within a database.
96
+
97
+ Note: This API requires db_name as a path parameter for all operations,
98
+ so it overrides several base class methods to handle dynamic paths.
99
+ """
100
+
101
+ def __init__(self, http_client: HTTPClient) -> None:
102
+ # We pass empty endpoint map since paths are dynamic (depend on db_name)
103
+ super().__init__(
104
+ http_client,
105
+ {
106
+ "create": Endpoint(method="POST", path="/raw/dbs/{dbName}/tables", item_limit=1000),
107
+ "delete": Endpoint(method="POST", path="/raw/dbs/{dbName}/tables/delete", item_limit=1000),
108
+ "list": Endpoint(method="GET", path="/raw/dbs/{dbName}/tables", item_limit=1000),
109
+ },
110
+ )
111
+
112
+ def _validate_page_response(self, response: SuccessResponse2 | ItemsSuccessResponse2) -> PagedResponse[RAWTable]:
113
+ """Parse a page response. Note: db_name must be injected separately."""
114
+ return PagedResponse[RAWTable].model_validate_json(response.body)
115
+
116
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[RAWTable]:
117
+ """Parse a reference response. Note: db_name must be injected separately."""
118
+ return ResponseItems[RAWTable].model_validate_json(response.body)
119
+
120
+ def create(self, items: Sequence[RAWTable], ensure_parent: bool = False) -> list[RAWTable]:
121
+ """Create tables in a database in CDF.
122
+
123
+ Args:
124
+ items: List of RAWTable objects to create.
125
+ ensure_parent: Create database if it doesn't exist already.
126
+
127
+ Returns:
128
+ List of created RAWTable objects.
129
+ """
130
+ result: list[RAWTable] = []
131
+ for (db_name,), group in self._group_items_by_text_field(items, "db_name").items():
132
+ if not db_name:
133
+ raise ValueError("db_name must be set on all RAWTable items for creation.")
134
+ endpoint = f"/raw/dbs/{db_name}/tables"
135
+ created = self._request_item_response(
136
+ group, "create", params={"ensureParent": ensure_parent}, endpoint=endpoint
137
+ )
138
+ for table in created:
139
+ result.append(RAWTable(db_name=db_name, name=table.name))
140
+ return result
141
+
142
+ def delete(self, items: Sequence[RAWTable]) -> None:
143
+ """Delete tables from a database in CDF.
144
+
145
+ Args:
146
+ items: List of RAWTable objects to delete.
147
+ """
148
+ for (db_name,), group in self._group_items_by_text_field(items, "db_name").items():
149
+ if not db_name:
150
+ raise ValueError("db_name must be set on all RAWTable items for deletion.")
151
+ endpoint = f"/raw/dbs/{db_name}/tables/delete"
152
+ self._request_no_response(list(group), "delete", endpoint=endpoint)
153
+
154
+ def paginate(
155
+ self,
156
+ db_name: str,
157
+ limit: int = 100,
158
+ cursor: str | None = None,
159
+ ) -> PagedResponse[RAWTable]:
160
+ """Iterate over all tables in a database in CDF.
161
+
162
+ Args:
163
+ db_name: The name of the database to list tables from.
164
+ limit: Maximum number of items to return.
165
+ cursor: Cursor for pagination.
166
+
167
+ Returns:
168
+ PagedResponse of RAWTable objects.
169
+ """
170
+ return self._paginate(cursor=cursor, limit=limit, endpoint_path=f"/raw/dbs/{db_name}/tables")
171
+
172
+ def iterate(
173
+ self,
174
+ db_name: str,
175
+ limit: int = 100,
176
+ ) -> Iterable[list[RAWTable]]:
177
+ """Iterate over all tables in a database in CDF.
178
+
179
+ Args:
180
+ db_name: The name of the database to list tables from.
181
+ limit: Maximum number of items to return per page.
182
+
183
+ Returns:
184
+ Iterable of lists of RAWTable objects.
185
+ """
186
+ return self._iterate(limit=limit, endpoint_path=f"/raw/dbs/{db_name}/tables")
187
+
188
+ def list(self, db_name: str, limit: int | None = None) -> list[RAWTable]:
189
+ """List all tables in a database in CDF.
190
+
191
+ Args:
192
+ db_name: The name of the database to list tables from.
193
+ limit: Maximum number of tables to return. If None, returns all tables.
194
+
195
+ Returns:
196
+ List of RAWTable objects.
197
+ """
198
+ return self._list(limit, endpoint_path=f"/raw/dbs/{db_name}/tables")
199
+
200
+
201
+ class RawAPI:
202
+ def __init__(self, http_client: HTTPClient) -> None:
203
+ self.databases = RawDatabasesAPI(http_client)
204
+ self.tables = RawTablesAPI(http_client)
@@ -0,0 +1,133 @@
1
+ """Relationships API for managing CDF relationships.
2
+
3
+ Based on the API specification at:
4
+ https://api-docs.cognite.com/20230101/tag/Relationships/operation/createRelationships
5
+ """
6
+
7
+ from collections.abc import Iterable, Sequence
8
+ from typing import Literal
9
+
10
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, Endpoint, PagedResponse
11
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient, ItemsSuccessResponse2, SuccessResponse2
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
13
+ from cognite_toolkit._cdf_tk.client.resource_classes.relationship import RelationshipRequest, RelationshipResponse
14
+
15
+
16
+ class RelationshipsAPI(CDFResourceAPI[ExternalId, RelationshipRequest, RelationshipResponse]):
17
+ """API for managing CDF relationships."""
18
+
19
+ def __init__(self, http_client: HTTPClient) -> None:
20
+ super().__init__(
21
+ http_client=http_client,
22
+ method_endpoint_map={
23
+ "create": Endpoint(method="POST", path="/relationships", item_limit=1000),
24
+ "retrieve": Endpoint(method="POST", path="/relationships/byids", item_limit=1000),
25
+ "update": Endpoint(method="POST", path="/relationships/update", item_limit=1000),
26
+ "delete": Endpoint(method="POST", path="/relationships/delete", item_limit=1000),
27
+ "list": Endpoint(method="POST", path="/relationships/list", item_limit=1000),
28
+ },
29
+ )
30
+
31
+ def _validate_page_response(
32
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
33
+ ) -> PagedResponse[RelationshipResponse]:
34
+ return PagedResponse[RelationshipResponse].model_validate_json(response.body)
35
+
36
+ def create(self, items: Sequence[RelationshipRequest]) -> list[RelationshipResponse]:
37
+ """Create relationships in CDF.
38
+
39
+ Args:
40
+ items: List of RelationshipRequest objects to create.
41
+
42
+ Returns:
43
+ List of created RelationshipResponse objects.
44
+ """
45
+ return self._request_item_response(items, "create")
46
+
47
+ def retrieve(
48
+ self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False, fetch_resources: bool = False
49
+ ) -> list[RelationshipResponse]:
50
+ """Retrieve relationships from CDF.
51
+
52
+ Args:
53
+ items: List of ExternalId objects to retrieve.
54
+ ignore_unknown_ids: Whether to ignore unknown IDs.
55
+ fetch_resources: If true, will try to fetch the resources referred to in the relationship,
56
+ based on the users access rights. Will silently fail to attach the resources
57
+ if the user lacks access to some of them.
58
+
59
+ Returns:
60
+ List of retrieved RelationshipResponse objects.
61
+ """
62
+ return self._request_item_response(
63
+ items,
64
+ method="retrieve",
65
+ extra_body={"ignoreUnknownIds": ignore_unknown_ids, "fetchResources": fetch_resources},
66
+ )
67
+
68
+ def update(
69
+ self, items: Sequence[RelationshipRequest], mode: Literal["patch", "replace"] = "replace"
70
+ ) -> list[RelationshipResponse]:
71
+ """Update relationships in CDF.
72
+
73
+ Args:
74
+ items: List of RelationshipRequest objects to update.
75
+ mode: Update mode, either "patch" or "replace".
76
+
77
+ Returns:
78
+ List of updated RelationshipResponse objects.
79
+ """
80
+ return self._update(items, mode=mode)
81
+
82
+ def delete(self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False) -> None:
83
+ """Delete relationships from CDF.
84
+
85
+ Args:
86
+ items: List of ExternalId objects to delete.
87
+ ignore_unknown_ids: Whether to ignore unknown IDs.
88
+ """
89
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
90
+
91
+ def paginate(
92
+ self,
93
+ limit: int = 100,
94
+ cursor: str | None = None,
95
+ ) -> PagedResponse[RelationshipResponse]:
96
+ """Get a page of relationships from CDF.
97
+
98
+ Args:
99
+ limit: Maximum number of relationships to return.
100
+ cursor: Cursor for pagination.
101
+
102
+ Returns:
103
+ PagedResponse of RelationshipResponse objects.
104
+ """
105
+ return self._paginate(
106
+ cursor=cursor,
107
+ limit=limit,
108
+ )
109
+
110
+ def iterate(
111
+ self,
112
+ limit: int | None = None,
113
+ ) -> Iterable[list[RelationshipResponse]]:
114
+ """Iterate over all relationships in CDF.
115
+
116
+ Args:
117
+ limit: Maximum total number of relationships to return.
118
+
119
+ Returns:
120
+ Iterable of lists of RelationshipResponse objects.
121
+ """
122
+ return self._iterate(limit=limit)
123
+
124
+ def list(self, limit: int | None = None) -> list[RelationshipResponse]:
125
+ """List all relationships in CDF.
126
+
127
+ Args:
128
+ limit: Maximum total number of relationships to return.
129
+
130
+ Returns:
131
+ List of RelationshipResponse objects.
132
+ """
133
+ return self._list(limit=limit)
@@ -0,0 +1,19 @@
1
+ from cognite_toolkit._cdf_tk.client.api.robotics_capabilities import CapabilitiesAPI
2
+ from cognite_toolkit._cdf_tk.client.api.robotics_data_postprocessing import DataPostProcessingAPI
3
+ from cognite_toolkit._cdf_tk.client.api.robotics_frames import FramesAPI
4
+ from cognite_toolkit._cdf_tk.client.api.robotics_locations import LocationsAPI
5
+ from cognite_toolkit._cdf_tk.client.api.robotics_maps import MapsAPI
6
+ from cognite_toolkit._cdf_tk.client.api.robotics_robots import RobotsAPI
7
+ from cognite_toolkit._cdf_tk.client.http_client import HTTPClient
8
+
9
+
10
+ class RoboticsAPI:
11
+ """API for Robotics resources."""
12
+
13
+ def __init__(self, http_client: HTTPClient) -> None:
14
+ self.capabilities = CapabilitiesAPI(http_client)
15
+ self.data_postprocessing = DataPostProcessingAPI(http_client)
16
+ self.frames = FramesAPI(http_client)
17
+ self.locations = LocationsAPI(http_client)
18
+ self.maps = MapsAPI(http_client)
19
+ self.robots = RobotsAPI(http_client)
@@ -0,0 +1,127 @@
1
+ from collections.abc import Iterable, Sequence
2
+ from typing import 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.identifiers import ExternalId
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.robotics._capability import (
9
+ RobotCapabilityRequest,
10
+ RobotCapabilityResponse,
11
+ )
12
+
13
+
14
+ class CapabilitiesAPI(CDFResourceAPI[ExternalId, RobotCapabilityRequest, RobotCapabilityResponse]):
15
+ """API for managing Capability resources in CDF."""
16
+
17
+ def __init__(self, http_client: HTTPClient) -> None:
18
+ super().__init__(
19
+ http_client=http_client,
20
+ method_endpoint_map={
21
+ "create": Endpoint(
22
+ method="POST", path="/robotics/capabilities", item_limit=1000, concurrency_max_workers=1
23
+ ),
24
+ "retrieve": Endpoint(
25
+ method="POST", path="/robotics/capabilities/byids", item_limit=1000, concurrency_max_workers=1
26
+ ),
27
+ "update": Endpoint(
28
+ method="POST", path="/robotics/capabilities/update", item_limit=1000, concurrency_max_workers=1
29
+ ),
30
+ "delete": Endpoint(
31
+ method="POST", path="/robotics/capabilities/delete", item_limit=1000, concurrency_max_workers=1
32
+ ),
33
+ "list": Endpoint(method="GET", path="/robotics/capabilities", item_limit=1000),
34
+ },
35
+ disable_gzip=True,
36
+ )
37
+
38
+ def _validate_page_response(
39
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
40
+ ) -> PagedResponse[RobotCapabilityResponse]:
41
+ return PagedResponse[RobotCapabilityResponse].model_validate_json(response.body)
42
+
43
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
44
+ return ResponseItems[ExternalId].model_validate_json(response.body)
45
+
46
+ def create(self, items: Sequence[RobotCapabilityRequest]) -> list[RobotCapabilityResponse]:
47
+ """Create capabilities in CDF.
48
+
49
+ Args:
50
+ items: List of RobotCapabilityRequest objects to create.
51
+ Returns:
52
+ List of created RobotCapabilityResponse objects.
53
+ """
54
+ return self._request_item_response(items, "create")
55
+
56
+ def retrieve(self, items: Sequence[ExternalId]) -> list[RobotCapabilityResponse]:
57
+ """Retrieve capabilities from CDF.
58
+
59
+ Args:
60
+ items: List of ExternalId objects to retrieve.
61
+ Returns:
62
+ List of retrieved RobotCapabilityResponse objects.
63
+ """
64
+ return self._request_item_response(items, method="retrieve")
65
+
66
+ def update(
67
+ self, items: Sequence[RobotCapabilityRequest], mode: Literal["patch", "replace"] = "replace"
68
+ ) -> list[RobotCapabilityResponse]:
69
+ """Update capabilities in CDF.
70
+
71
+ Args:
72
+ items: List of RobotCapabilityRequest objects to update.
73
+ mode: Update mode, either "patch" or "replace".
74
+
75
+ Returns:
76
+ List of updated RobotCapabilityResponse objects.
77
+ """
78
+ return self._update(items, mode=mode)
79
+
80
+ def delete(self, items: Sequence[ExternalId]) -> None:
81
+ """Delete capabilities from CDF.
82
+
83
+ Args:
84
+ items: List of ExternalId objects to delete.
85
+ """
86
+ self._request_no_response(items, "delete")
87
+
88
+ def paginate(
89
+ self,
90
+ limit: int = 100,
91
+ cursor: str | None = None,
92
+ ) -> PagedResponse[RobotCapabilityResponse]:
93
+ """Paginate over capabilities in CDF.
94
+
95
+ Args:
96
+ limit: Maximum number of items per page.
97
+ cursor: Cursor for pagination.
98
+
99
+ Returns:
100
+ PagedResponse of RobotCapabilityResponse objects.
101
+ """
102
+ return self._paginate(cursor=cursor, limit=limit)
103
+
104
+ def iterate(
105
+ self,
106
+ limit: int | None = 100,
107
+ ) -> Iterable[list[RobotCapabilityResponse]]:
108
+ """Iterate over all capabilities in CDF.
109
+
110
+ Args:
111
+ limit: Maximum number of items to return. None returns all.
112
+
113
+ Returns:
114
+ Iterable of lists of RobotCapabilityResponse objects.
115
+ """
116
+ return self._iterate(limit=limit)
117
+
118
+ def list(self, limit: int | None = 100) -> list[RobotCapabilityResponse]:
119
+ """List all capabilities in CDF.
120
+
121
+ Args:
122
+ limit: Maximum number of items to return. None returns all.
123
+
124
+ Returns:
125
+ List of RobotCapabilityResponse objects.
126
+ """
127
+ return self._list(limit=limit)