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,129 @@
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.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
10
+
11
+
12
+ class EventsAPI(CDFResourceAPI[InternalOrExternalId, EventRequest, EventResponse]):
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="/events", item_limit=1000, concurrency_max_workers=1),
18
+ "retrieve": Endpoint(method="POST", path="/events/byids", item_limit=1000, concurrency_max_workers=1),
19
+ "update": Endpoint(method="POST", path="/events/update", item_limit=1000, concurrency_max_workers=1),
20
+ "delete": Endpoint(method="POST", path="/events/delete", item_limit=1000, concurrency_max_workers=1),
21
+ "list": Endpoint(method="POST", path="/events/list", item_limit=1000),
22
+ },
23
+ )
24
+
25
+ def _validate_page_response(
26
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
27
+ ) -> PagedResponse[EventResponse]:
28
+ return PagedResponse[EventResponse].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[EventRequest]) -> list[EventResponse]:
34
+ """Create events in CDF.
35
+
36
+ Args:
37
+ items: List of EventRequest objects to create.
38
+ Returns:
39
+ List of created EventResponse objects.
40
+ """
41
+ return self._request_item_response(items, "create")
42
+
43
+ def retrieve(self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False) -> list[EventResponse]:
44
+ """Retrieve events 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 EventResponse 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[EventRequest], mode: Literal["patch", "replace"] = "replace"
58
+ ) -> list[EventResponse]:
59
+ """Update events in CDF.
60
+
61
+ Args:
62
+ items: List of EventRequest objects to update.
63
+ mode: Update mode, either "patch" or "replace".
64
+
65
+ Returns:
66
+ List of updated EventResponse objects.
67
+ """
68
+ return self._update(items, mode=mode)
69
+
70
+ def delete(self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False) -> None:
71
+ """Delete events from CDF.
72
+
73
+ Args:
74
+ items: List of InternalOrExternalId objects to delete.
75
+ ignore_unknown_ids: Whether to ignore unknown IDs.
76
+ """
77
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
78
+
79
+ def paginate(
80
+ self,
81
+ filter: ClassicFilter | None = None,
82
+ limit: int = 100,
83
+ cursor: str | None = None,
84
+ ) -> PagedResponse[EventResponse]:
85
+ """Iterate over all events in CDF.
86
+
87
+ Args:
88
+ filter: Filter by data set IDs and/or asset subtree IDs.
89
+ limit: Maximum number of items to return.
90
+ cursor: Cursor for pagination.
91
+
92
+ Returns:
93
+ PagedResponse of EventResponse objects.
94
+ """
95
+ return self._paginate(
96
+ cursor=cursor,
97
+ limit=limit,
98
+ body={"filter": filter.dump() if filter else None},
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
+ """
115
+ return self._iterate(
116
+ limit=limit,
117
+ body={"filter": filter.dump() if filter else None},
118
+ )
119
+
120
+ def list(
121
+ self,
122
+ limit: int | None = 100,
123
+ ) -> list[EventResponse]:
124
+ """List all events in CDF.
125
+
126
+ Returns:
127
+ List of EventResponse objects.
128
+ """
129
+ return self._list(limit=limit)
@@ -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)
@@ -0,0 +1,176 @@
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 (
7
+ HTTPClient,
8
+ ItemsSuccessResponse2,
9
+ RequestMessage2,
10
+ SuccessResponse2,
11
+ )
12
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
13
+ from cognite_toolkit._cdf_tk.client.resource_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
14
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalOrExternalId
15
+
16
+
17
+ class FileMetadataAPI(CDFResourceAPI[InternalOrExternalId, FileMetadataRequest, FileMetadataResponse]):
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="/files", item_limit=1, concurrency_max_workers=1),
23
+ "retrieve": Endpoint(method="POST", path="/files/byids", item_limit=1000, concurrency_max_workers=1),
24
+ "update": Endpoint(method="POST", path="/files/update", item_limit=1000, concurrency_max_workers=1),
25
+ "delete": Endpoint(method="POST", path="/files/delete", item_limit=1000, concurrency_max_workers=1),
26
+ "list": Endpoint(method="POST", path="/files/list", item_limit=1000),
27
+ },
28
+ )
29
+
30
+ def _validate_page_response(
31
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
32
+ ) -> PagedResponse[FileMetadataResponse]:
33
+ return PagedResponse[FileMetadataResponse].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[FileMetadataRequest], overwrite: bool = False) -> list[FileMetadataResponse]:
39
+ """Upload file metadata to CDF.
40
+
41
+ Args:
42
+ items: List of FileMetadataRequest objects to upload.
43
+ overwrite: Whether to overwrite existing file metadata with the same external ID.
44
+
45
+ Returns:
46
+ List of created FileMetadataResponse objects.
47
+ """
48
+ # The Files API is different from other APIs, thus we have a custom implementation here.
49
+ # - It only allow one item per request that is not wrapped in a "items" field.
50
+ # - It uses a query parameter for "overwrite" instead of including it in the body
51
+ endpoint = self._method_endpoint_map["create"]
52
+ results: list[FileMetadataResponse] = []
53
+ for item in items:
54
+ request = RequestMessage2(
55
+ endpoint_url=self._make_url(endpoint.path),
56
+ method=endpoint.method,
57
+ body_content=item.dump(),
58
+ parameters={"overwrite": overwrite},
59
+ )
60
+ response = self._http_client.request_single_retries(request)
61
+ result = response.get_success_or_raise()
62
+ results.append(FileMetadataResponse.model_validate_json(result.body))
63
+ return results
64
+
65
+ def retrieve(
66
+ self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False
67
+ ) -> list[FileMetadataResponse]:
68
+ """Retrieve file metadata from CDF.
69
+
70
+ Args:
71
+ items: List of InternalOrExternalId objects to retrieve.
72
+ ignore_unknown_ids: Whether to ignore unknown IDs.
73
+ Returns:
74
+ List of retrieved FileMetadataResponse objects.
75
+ """
76
+ return self._request_item_response(
77
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
78
+ )
79
+
80
+ def update(
81
+ self, items: Sequence[FileMetadataRequest], mode: Literal["patch", "replace"] = "replace"
82
+ ) -> list[FileMetadataResponse]:
83
+ """Update file metadata in CDF.
84
+
85
+ Args:
86
+ items: List of FileMetadataRequest objects to update.
87
+ mode: Update mode, either "patch" or "replace".
88
+
89
+ Returns:
90
+ List of updated FileMetadataResponse objects.
91
+ """
92
+ return self._update(items, mode=mode)
93
+
94
+ def delete(self, items: Sequence[InternalOrExternalId], ignore_unknown_ids: bool = False) -> None:
95
+ """Delete file metadata from CDF.
96
+
97
+ Args:
98
+ items: List of InternalOrExternalId objects to delete.
99
+ ignore_unknown_ids: Whether to ignore unknown IDs.
100
+ """
101
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
102
+
103
+ def paginate(
104
+ self,
105
+ filter: ClassicFilter | None = None,
106
+ directory_prefix: str | None = None,
107
+ uploaded: bool | None = None,
108
+ limit: int = 100,
109
+ cursor: str | None = None,
110
+ ) -> PagedResponse[FileMetadataResponse]:
111
+ """Iterate over file metadata in CDF.
112
+
113
+ Args:
114
+ filter: Filter by data set IDs and/or asset subtree IDs.
115
+ directory_prefix: Filter by directory prefix.
116
+ uploaded: Filter by upload status.
117
+ limit: Maximum number of items to return per page.
118
+ cursor: Cursor for pagination.
119
+
120
+ Returns:
121
+ PagedResponse of FileMetadataResponse objects.
122
+ """
123
+ filter_: dict[str, Any] = filter.dump() if filter else {}
124
+ if directory_prefix is not None:
125
+ filter_["directoryPrefix"] = directory_prefix
126
+ if uploaded is not None:
127
+ filter_["uploaded"] = uploaded
128
+
129
+ return self._paginate(
130
+ cursor=cursor,
131
+ limit=limit,
132
+ body={"filter": filter_ or None},
133
+ )
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
+
164
+ def list(
165
+ self,
166
+ limit: int | None = 100,
167
+ ) -> list[FileMetadataResponse]:
168
+ """List all file metadata in CDF.
169
+
170
+ Args:
171
+ limit: Maximum number of items to return. None for all items.
172
+
173
+ Returns:
174
+ List of FileMetadataResponse objects.
175
+ """
176
+ return self._list(limit=limit)
@@ -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)
@@ -0,0 +1,113 @@
1
+ """Functions API for managing CDF functions.
2
+
3
+ Based on the API specification at:
4
+ https://api-docs.cognite.com/20230101/tag/Functions/operation/postFunctions
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 import FunctionRequest, FunctionResponse
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalId
13
+
14
+
15
+ class FunctionsAPI(CDFResourceAPI[InternalId, FunctionRequest, FunctionResponse]):
16
+ """API for managing CDF functions.
17
+
18
+ Note: Functions do not support update operations.
19
+ """
20
+
21
+ def __init__(self, http_client: HTTPClient) -> None:
22
+ super().__init__(
23
+ http_client=http_client,
24
+ method_endpoint_map={
25
+ "create": Endpoint(method="POST", path="/functions", item_limit=1),
26
+ "retrieve": Endpoint(method="POST", path="/functions/byids", item_limit=10),
27
+ "delete": Endpoint(method="POST", path="/functions/delete", item_limit=10),
28
+ "list": Endpoint(method="POST", path="/functions/list", item_limit=1000),
29
+ },
30
+ )
31
+
32
+ def _validate_page_response(
33
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
34
+ ) -> PagedResponse[FunctionResponse]:
35
+ return PagedResponse[FunctionResponse].model_validate_json(response.body)
36
+
37
+ def create(self, items: Sequence[FunctionRequest]) -> list[FunctionResponse]:
38
+ """Create functions in CDF.
39
+
40
+ Args:
41
+ items: List of FunctionRequest objects to create.
42
+
43
+ Returns:
44
+ List of created FunctionResponse objects.
45
+ """
46
+ return self._request_item_response(items, "create")
47
+
48
+ def retrieve(self, items: Sequence[InternalId], ignore_unknown_ids: bool = False) -> list[FunctionResponse]:
49
+ """Retrieve functions from CDF by ID.
50
+
51
+ Args:
52
+ items: List of InternalId objects to retrieve.
53
+ ignore_unknown_ids: Whether to ignore unknown IDs.
54
+
55
+ Returns:
56
+ List of retrieved FunctionResponse objects.
57
+ """
58
+ return self._request_item_response(
59
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
60
+ )
61
+
62
+ def delete(self, items: Sequence[InternalId], ignore_unknown_ids: bool = False) -> None:
63
+ """Delete functions from CDF.
64
+
65
+ Args:
66
+ items: List of InternalId objects to delete.
67
+ ignore_unknown_ids: Whether to ignore unknown IDs.
68
+ """
69
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
70
+
71
+ def paginate(
72
+ self,
73
+ limit: int = 100,
74
+ cursor: str | None = None,
75
+ ) -> PagedResponse[FunctionResponse]:
76
+ """Get a page of functions from CDF.
77
+
78
+ Args:
79
+ limit: Maximum number of functions to return.
80
+ cursor: Cursor for pagination.
81
+
82
+ Returns:
83
+ PagedResponse of FunctionResponse objects.
84
+ """
85
+ return self._paginate(
86
+ cursor=cursor,
87
+ limit=limit,
88
+ )
89
+
90
+ def iterate(
91
+ self,
92
+ limit: int | None = None,
93
+ ) -> Iterable[list[FunctionResponse]]:
94
+ """Iterate over all functions in CDF.
95
+
96
+ Args:
97
+ limit: Maximum total number of functions to return.
98
+
99
+ Returns:
100
+ Iterable of lists of FunctionResponse objects.
101
+ """
102
+ return self._iterate(limit=limit)
103
+
104
+ def list(self, limit: int | None = None) -> list[FunctionResponse]:
105
+ """List all functions in CDF.
106
+
107
+ Args:
108
+ limit: Maximum total number of functions to return.
109
+
110
+ Returns:
111
+ List of FunctionResponse objects.
112
+ """
113
+ return self._list(limit=limit)