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,167 @@
1
+ """GraphQL Data Models API for managing CDF GraphQL/DML data models.
2
+
3
+ This API provides a wrapper around the legacy DML API for managing GraphQL data models.
4
+ """
5
+
6
+ from collections.abc import Iterable, Sequence
7
+ from typing import Any
8
+
9
+ from cognite_toolkit._cdf_tk.client.cdf_client import CDFResourceAPI, Endpoint, PagedResponse
10
+ from cognite_toolkit._cdf_tk.client.cdf_client.responses import GraphQLUpsertResponse
11
+ from cognite_toolkit._cdf_tk.client.http_client import (
12
+ HTTPClient,
13
+ ItemsSuccessResponse2,
14
+ RequestMessage2,
15
+ SuccessResponse2,
16
+ ToolkitAPIError,
17
+ )
18
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import DataModelFilter
19
+ from cognite_toolkit._cdf_tk.client.request_classes.graphql import UPSERT_BODY
20
+ from cognite_toolkit._cdf_tk.client.resource_classes.data_modeling import DataModelReference
21
+ from cognite_toolkit._cdf_tk.client.resource_classes.graphql_data_model import (
22
+ GraphQLDataModelRequest,
23
+ GraphQLDataModelResponse,
24
+ )
25
+
26
+
27
+ class GraphQLDataModelsAPI(CDFResourceAPI[DataModelReference, GraphQLDataModelRequest, GraphQLDataModelResponse]):
28
+ """API for managing CDF GraphQL/DML data models.
29
+
30
+ This API uses GraphQL mutations to manage data models with DML (Data Modeling Language).
31
+ """
32
+
33
+ def __init__(self, http_client: HTTPClient) -> None:
34
+ super().__init__(
35
+ http_client=http_client,
36
+ method_endpoint_map={
37
+ "retrieve": Endpoint(method="POST", path="/models/datamodels/byids", item_limit=100),
38
+ "delete": Endpoint(method="POST", path="/models/datamodels/delete", item_limit=100),
39
+ "list": Endpoint(method="GET", path="/models/datamodels", item_limit=1000),
40
+ },
41
+ )
42
+
43
+ def _validate_page_response(
44
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
45
+ ) -> PagedResponse[GraphQLDataModelResponse]:
46
+ return PagedResponse[GraphQLDataModelResponse].model_validate_json(response.body)
47
+
48
+ def _post_graphql(self, payload: dict[str, Any]) -> GraphQLUpsertResponse:
49
+ """Execute a GraphQL query against the DML endpoint."""
50
+ request = RequestMessage2(
51
+ endpoint_url=self._make_url("/dml/graphql"),
52
+ method="POST",
53
+ body_content=payload,
54
+ )
55
+ result = self._http_client.request_single_retries(request)
56
+ response = result.get_success_or_raise()
57
+ parsed = GraphQLUpsertResponse.model_validate_json(response.body)
58
+ if errors := parsed.upsert_graph_ql_dml_version.errors:
59
+ raise ToolkitAPIError(f"Failed GraphQL errors: {errors}")
60
+ return parsed
61
+
62
+ def create(self, items: Sequence[GraphQLDataModelRequest]) -> list[GraphQLDataModelResponse]:
63
+ """Apply (create or update) GraphQL data models in CDF.
64
+
65
+ Args:
66
+ items: List of GraphQLDataModelRequest objects to apply.
67
+
68
+ Returns:
69
+ List of applied GraphQLDataModelResponse objects.
70
+ """
71
+ results: list[GraphQLDataModelResponse] = []
72
+ for item in items:
73
+ payload = {"query": UPSERT_BODY, "variables": {"dmCreate": item.dump()}}
74
+ response = self._post_graphql(payload)
75
+
76
+ results.append(response.upsert_graph_ql_dml_version.data)
77
+
78
+ return results
79
+
80
+ def update(self, items: Sequence[GraphQLDataModelRequest]) -> list[GraphQLDataModelResponse]:
81
+ """Update GraphQL data models in CDF.
82
+
83
+ Args:
84
+ items: List of GraphQLDataModelRequest objects to update.
85
+ Returns:
86
+ List of updated GraphQLDataModelResponse objects.
87
+ """
88
+ return self.create(items)
89
+
90
+ def retrieve(
91
+ self, items: Sequence[DataModelReference], inline_views: bool = False
92
+ ) -> list[GraphQLDataModelResponse]:
93
+ """Retrieve GraphQL data models from CDF.
94
+
95
+ Args:
96
+ items: List of DataModelReference objects to retrieve.
97
+ inline_views: Whether to include full view definitions in the response.
98
+
99
+ Returns:
100
+ List of retrieved GraphQLDataModelResponse objects.
101
+ """
102
+ return self._request_item_response(items, method="retrieve", extra_body={"inlineViews": inline_views})
103
+
104
+ def delete(self, items: Sequence[DataModelReference]) -> None:
105
+ """Delete GraphQL data models from CDF.
106
+
107
+ Args:
108
+ items: List of DataModelReference objects to delete.
109
+ """
110
+ self._request_no_response(items, "delete")
111
+
112
+ def paginate(
113
+ self,
114
+ filter: DataModelFilter | None = None,
115
+ limit: int = 100,
116
+ cursor: str | None = None,
117
+ ) -> PagedResponse[GraphQLDataModelResponse]:
118
+ """Get a page of GraphQL data models from CDF.
119
+
120
+ Args:
121
+ filter: DataModelFilter to filter data models.
122
+ limit: Maximum number of data models to return.
123
+ cursor: Cursor for pagination.
124
+
125
+ Returns:
126
+ PagedResponse of GraphQLDataModelResponse objects.
127
+ """
128
+ return self._paginate(
129
+ cursor=cursor,
130
+ limit=limit,
131
+ params=filter.dump() if filter else None,
132
+ )
133
+
134
+ def iterate(
135
+ self,
136
+ filter: DataModelFilter | None = None,
137
+ limit: int | None = None,
138
+ ) -> Iterable[list[GraphQLDataModelResponse]]:
139
+ """Iterate over all GraphQL data models in CDF.
140
+
141
+ Args:
142
+ filter: DataModelFilter to filter data models.
143
+ limit: Maximum total number of data models to return.
144
+
145
+ Returns:
146
+ Iterable of lists of GraphQLDataModelResponse objects.
147
+ """
148
+ return self._iterate(
149
+ limit=limit,
150
+ params=filter.dump() if filter else None,
151
+ )
152
+
153
+ def list(
154
+ self,
155
+ filter: DataModelFilter | None = None,
156
+ limit: int | None = None,
157
+ ) -> list[GraphQLDataModelResponse]:
158
+ """List all GraphQL data models in CDF.
159
+
160
+ Args:
161
+ filter: DataModelFilter to filter data models.
162
+ limit: Maximum total number of data models to return.
163
+
164
+ Returns:
165
+ List of GraphQLDataModelResponse objects.
166
+ """
167
+ return self._list(limit=limit, params=filter.dump() if filter else None)
@@ -0,0 +1,121 @@
1
+ """Groups API for managing CDF access groups.
2
+
3
+ Based on the API specification at:
4
+ https://api-docs.cognite.com/20230101/tag/Groups/operation/createGroups
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 (
11
+ HTTPClient,
12
+ ItemsSuccessResponse2,
13
+ RequestMessage2,
14
+ SuccessResponse2,
15
+ )
16
+ from cognite_toolkit._cdf_tk.client.resource_classes.group import GroupRequest, GroupResponse
17
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import InternalId
18
+ from cognite_toolkit._cdf_tk.utils.collection import chunker_sequence
19
+
20
+
21
+ class GroupsAPI(CDFResourceAPI[InternalId, GroupRequest, GroupResponse]):
22
+ """API for managing CDF access groups.
23
+
24
+ Note: Groups do not support update operations.
25
+ """
26
+
27
+ def __init__(self, http_client: HTTPClient) -> None:
28
+ super().__init__(
29
+ http_client=http_client,
30
+ method_endpoint_map={
31
+ "create": Endpoint(method="POST", path="/groups", item_limit=1000),
32
+ "delete": Endpoint(method="POST", path="/groups/delete", item_limit=1000),
33
+ "list": Endpoint(method="GET", path="/groups", item_limit=1000),
34
+ },
35
+ )
36
+
37
+ def _validate_page_response(
38
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
39
+ ) -> PagedResponse[GroupResponse]:
40
+ return PagedResponse[GroupResponse].model_validate_json(response.body)
41
+
42
+ def create(self, items: Sequence[GroupRequest]) -> list[GroupResponse]:
43
+ """Create groups in CDF.
44
+
45
+ Args:
46
+ items: List of GroupRequest objects to create.
47
+
48
+ Returns:
49
+ List of created GroupResponse objects.
50
+ """
51
+ return self._request_item_response(items, "create")
52
+
53
+ def delete(self, items: Sequence[InternalId]) -> None:
54
+ """Delete groups from CDF.
55
+
56
+ Args:
57
+ items: List of InternalId objects to delete.
58
+ """
59
+ # Custom implementation since delete does not wrap the items in a {"id": ...} structure
60
+ endpoint = self._method_endpoint_map["delete"]
61
+ for chunk in chunker_sequence(items, endpoint.item_limit):
62
+ request = RequestMessage2(
63
+ endpoint_url=self._make_url(endpoint.path),
64
+ method=endpoint.method,
65
+ body_content={"items": [item.id for item in chunk]},
66
+ )
67
+ response = self._http_client.request_single_retries(request)
68
+ response.get_success_or_raise()
69
+
70
+ def paginate(
71
+ self,
72
+ all_groups: bool = False,
73
+ limit: int = 100,
74
+ cursor: str | None = None,
75
+ ) -> PagedResponse[GroupResponse]:
76
+ """Get a page of groups from CDF.
77
+
78
+ Args:
79
+ all_groups: Whether to return all groups (requires admin permissions).
80
+ limit: Maximum number of groups to return.
81
+ cursor: Cursor for pagination.
82
+
83
+ Returns:
84
+ PagedResponse of GroupResponse objects.
85
+ """
86
+ return self._paginate(
87
+ cursor=cursor,
88
+ limit=limit,
89
+ params={"all": all_groups} if all_groups else None,
90
+ )
91
+
92
+ def iterate(
93
+ self,
94
+ all_groups: bool = False,
95
+ limit: int | None = None,
96
+ ) -> Iterable[list[GroupResponse]]:
97
+ """Iterate over all groups in CDF.
98
+
99
+ Args:
100
+ all_groups: Whether to return all groups (requires admin permissions).
101
+ limit: Maximum total number of groups to return.
102
+
103
+ Returns:
104
+ Iterable of lists of GroupResponse objects.
105
+ """
106
+ return self._iterate(
107
+ limit=limit,
108
+ params={"all": all_groups} if all_groups else None,
109
+ )
110
+
111
+ def list(self, all_groups: bool = False, limit: int | None = None) -> list[GroupResponse]:
112
+ """List all groups in CDF.
113
+
114
+ Args:
115
+ all_groups: Whether to return all groups (requires admin permissions).
116
+ limit: Maximum total number of groups to return.
117
+
118
+ Returns:
119
+ List of GroupResponse objects.
120
+ """
121
+ return self._list(limit=limit, params={"all": all_groups} if all_groups else None)
@@ -0,0 +1,131 @@
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.hosted_extractor_destination import (
8
+ HostedExtractorDestinationRequest,
9
+ HostedExtractorDestinationResponse,
10
+ )
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
12
+
13
+
14
+ class HostedExtractorDestinationsAPI(
15
+ CDFResourceAPI[ExternalId, HostedExtractorDestinationRequest, HostedExtractorDestinationResponse]
16
+ ):
17
+ def __init__(self, http_client: HTTPClient) -> None:
18
+ super().__init__(
19
+ http_client=http_client,
20
+ method_endpoint_map={
21
+ "create": Endpoint(method="POST", path="/hostedextractors/destinations", item_limit=10),
22
+ "retrieve": Endpoint(method="POST", path="/hostedextractors/destinations/byids", item_limit=100),
23
+ "update": Endpoint(method="POST", path="/hostedextractors/destinations/update", item_limit=10),
24
+ "delete": Endpoint(method="POST", path="/hostedextractors/destinations/delete", item_limit=100),
25
+ "list": Endpoint(method="GET", path="/hostedextractors/destinations", item_limit=100),
26
+ },
27
+ )
28
+
29
+ def _validate_page_response(
30
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
31
+ ) -> PagedResponse[HostedExtractorDestinationResponse]:
32
+ return PagedResponse[HostedExtractorDestinationResponse].model_validate_json(response.body)
33
+
34
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
35
+ return ResponseItems[ExternalId].model_validate_json(response.body)
36
+
37
+ def create(self, items: Sequence[HostedExtractorDestinationRequest]) -> list[HostedExtractorDestinationResponse]:
38
+ """Create hosted extractor destinations in CDF.
39
+
40
+ Args:
41
+ items: List of destination request objects to create.
42
+ Returns:
43
+ List of created destination response objects.
44
+ """
45
+ return self._request_item_response(items, "create")
46
+
47
+ def retrieve(
48
+ self,
49
+ items: Sequence[ExternalId],
50
+ ignore_unknown_ids: bool = False,
51
+ ) -> list[HostedExtractorDestinationResponse]:
52
+ """Retrieve hosted extractor destinations from CDF.
53
+
54
+ Args:
55
+ items: List of ExternalId objects to retrieve.
56
+ ignore_unknown_ids: Whether to ignore unknown IDs.
57
+ Returns:
58
+ List of retrieved destination response objects.
59
+ """
60
+ return self._request_item_response(
61
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
62
+ )
63
+
64
+ def update(
65
+ self, items: Sequence[HostedExtractorDestinationRequest], mode: Literal["patch", "replace"] = "replace"
66
+ ) -> list[HostedExtractorDestinationResponse]:
67
+ """Update hosted extractor destinations in CDF.
68
+
69
+ Args:
70
+ items: List of destination request objects to update.
71
+ mode: Update mode, either "patch" or "replace".
72
+
73
+ Returns:
74
+ List of updated destination response objects.
75
+ """
76
+ return self._update(items, mode=mode)
77
+
78
+ def delete(self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False, force: bool | None = None) -> None:
79
+ """Delete hosted extractor destinations from CDF.
80
+
81
+ Args:
82
+ items: List of ExternalId objects to delete.
83
+ ignore_unknown_ids: Whether to ignore unknown IDs.
84
+ force: Delete any jobs associated with each item.
85
+ """
86
+ extra_body: dict[str, Any] = {"ignoreUnknownIds": ignore_unknown_ids}
87
+ if force is not None:
88
+ extra_body["force"] = force
89
+
90
+ self._request_no_response(items, "delete", extra_body=extra_body)
91
+
92
+ def paginate(
93
+ self,
94
+ limit: int = 100,
95
+ cursor: str | None = None,
96
+ ) -> PagedResponse[HostedExtractorDestinationResponse]:
97
+ """Iterate over hosted extractor destinations in CDF.
98
+
99
+ Args:
100
+ limit: Maximum number of items to return.
101
+ cursor: Cursor for pagination.
102
+
103
+ Returns:
104
+ PagedResponse of destination response objects.
105
+ """
106
+ return self._paginate(cursor=cursor, limit=limit)
107
+
108
+ def iterate(
109
+ self,
110
+ limit: int = 100,
111
+ ) -> Iterable[list[HostedExtractorDestinationResponse]]:
112
+ """Iterate over hosted extractor destinations in CDF.
113
+
114
+ Args:
115
+ limit: Maximum number of items to return per page.
116
+
117
+ Returns:
118
+ Iterable of lists of destination response objects.
119
+ """
120
+ return self._iterate(limit=limit)
121
+
122
+ def list(self, limit: int | None = 100) -> list[HostedExtractorDestinationResponse]:
123
+ """List all hosted extractor destinations in CDF.
124
+
125
+ Args:
126
+ limit: Maximum number of items to return. None for all items.
127
+
128
+ Returns:
129
+ List of destination response objects.
130
+ """
131
+ return self._list(limit=limit)
@@ -0,0 +1,122 @@
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.hosted_extractor_job import (
8
+ HostedExtractorJobRequest,
9
+ HostedExtractorJobResponse,
10
+ )
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
12
+
13
+
14
+ class HostedExtractorJobsAPI(CDFResourceAPI[ExternalId, HostedExtractorJobRequest, HostedExtractorJobResponse]):
15
+ def __init__(self, http_client: HTTPClient) -> None:
16
+ super().__init__(
17
+ http_client=http_client,
18
+ method_endpoint_map={
19
+ "create": Endpoint(method="POST", path="/hostedextractors/jobs", item_limit=10),
20
+ "retrieve": Endpoint(method="POST", path="/hostedextractors/jobs/byids", item_limit=100),
21
+ "update": Endpoint(method="POST", path="/hostedextractors/jobs/update", item_limit=10),
22
+ "delete": Endpoint(method="POST", path="/hostedextractors/jobs/delete", item_limit=100),
23
+ "list": Endpoint(method="GET", path="/hostedextractors/jobs", item_limit=100),
24
+ },
25
+ )
26
+
27
+ def _validate_page_response(
28
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
29
+ ) -> PagedResponse[HostedExtractorJobResponse]:
30
+ return PagedResponse[HostedExtractorJobResponse].model_validate_json(response.body)
31
+
32
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
33
+ return ResponseItems[ExternalId].model_validate_json(response.body)
34
+
35
+ def create(self, items: Sequence[HostedExtractorJobRequest]) -> list[HostedExtractorJobResponse]:
36
+ """Create hosted extractor jobs in CDF.
37
+
38
+ Args:
39
+ items: List of job request objects to create.
40
+ Returns:
41
+ List of created job response objects.
42
+ """
43
+ return self._request_item_response(items, "create")
44
+
45
+ def retrieve(
46
+ self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False
47
+ ) -> list[HostedExtractorJobResponse]:
48
+ """Retrieve hosted extractor jobs from CDF.
49
+
50
+ Args:
51
+ items: List of ExternalId objects to retrieve.
52
+ ignore_unknown_ids: Whether to ignore unknown IDs.
53
+ Returns:
54
+ List of retrieved job response objects.
55
+ """
56
+ return self._request_item_response(
57
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
58
+ )
59
+
60
+ def update(
61
+ self, items: Sequence[HostedExtractorJobRequest], mode: Literal["patch", "replace"] = "replace"
62
+ ) -> list[HostedExtractorJobResponse]:
63
+ """Update hosted extractor jobs in CDF.
64
+
65
+ Args:
66
+ items: List of job request objects to update.
67
+ mode: Update mode, either "patch" or "replace".
68
+
69
+ Returns:
70
+ List of updated job response objects.
71
+ """
72
+ return self._update(items, mode=mode)
73
+
74
+ def delete(self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False) -> None:
75
+ """Delete hosted extractor jobs from CDF.
76
+
77
+ Args:
78
+ items: List of ExternalId objects to delete.
79
+ ignore_unknown_ids: Whether to ignore unknown IDs.
80
+ """
81
+ self._request_no_response(items, "delete", extra_body={"ignoreUnknownIds": ignore_unknown_ids})
82
+
83
+ def paginate(
84
+ self,
85
+ limit: int = 100,
86
+ cursor: str | None = None,
87
+ ) -> PagedResponse[HostedExtractorJobResponse]:
88
+ """Iterate over hosted extractor jobs in CDF.
89
+
90
+ Args:
91
+ limit: Maximum number of items to return.
92
+ cursor: Cursor for pagination.
93
+
94
+ Returns:
95
+ PagedResponse of job response objects.
96
+ """
97
+ return self._paginate(cursor=cursor, limit=limit)
98
+
99
+ def iterate(
100
+ self,
101
+ limit: int = 100,
102
+ ) -> Iterable[list[HostedExtractorJobResponse]]:
103
+ """Iterate over hosted extractor jobs in CDF.
104
+
105
+ Args:
106
+ limit: Maximum number of items to return per page.
107
+
108
+ Returns:
109
+ Iterable of lists of job response objects.
110
+ """
111
+ return self._iterate(limit=limit)
112
+
113
+ def list(self, limit: int | None = 100) -> list[HostedExtractorJobResponse]:
114
+ """List all hosted extractor jobs in CDF.
115
+
116
+ Args:
117
+ limit: Maximum number of items to return. None for all items.
118
+
119
+ Returns:
120
+ List of job response objects.
121
+ """
122
+ return self._list(limit=limit)
@@ -0,0 +1,129 @@
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.hosted_extractor_mapping import (
8
+ HostedExtractorMappingRequest,
9
+ HostedExtractorMappingResponse,
10
+ )
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
12
+
13
+
14
+ class HostedExtractorMappingsAPI(
15
+ CDFResourceAPI[ExternalId, HostedExtractorMappingRequest, HostedExtractorMappingResponse]
16
+ ):
17
+ def __init__(self, http_client: HTTPClient) -> None:
18
+ super().__init__(
19
+ http_client=http_client,
20
+ method_endpoint_map={
21
+ "create": Endpoint(method="POST", path="/hostedextractors/mappings", item_limit=10),
22
+ "retrieve": Endpoint(method="POST", path="/hostedextractors/mappings/byids", item_limit=100),
23
+ "update": Endpoint(method="POST", path="/hostedextractors/mappings/update", item_limit=10),
24
+ "delete": Endpoint(method="POST", path="/hostedextractors/mappings/delete", item_limit=100),
25
+ "list": Endpoint(method="GET", path="/hostedextractors/mappings", item_limit=100),
26
+ },
27
+ )
28
+
29
+ def _validate_page_response(
30
+ self, response: SuccessResponse2 | ItemsSuccessResponse2
31
+ ) -> PagedResponse[HostedExtractorMappingResponse]:
32
+ return PagedResponse[HostedExtractorMappingResponse].model_validate_json(response.body)
33
+
34
+ def _reference_response(self, response: SuccessResponse2) -> ResponseItems[ExternalId]:
35
+ return ResponseItems[ExternalId].model_validate_json(response.body)
36
+
37
+ def create(self, items: Sequence[HostedExtractorMappingRequest]) -> list[HostedExtractorMappingResponse]:
38
+ """Create hosted extractor mappings in CDF.
39
+
40
+ Args:
41
+ items: List of mapping request objects to create.
42
+ Returns:
43
+ List of created mapping response objects.
44
+ """
45
+ return self._request_item_response(items, "create")
46
+
47
+ def retrieve(
48
+ self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False
49
+ ) -> list[HostedExtractorMappingResponse]:
50
+ """Retrieve hosted extractor mappings from CDF.
51
+
52
+ Args:
53
+ items: List of ExternalId objects to retrieve.
54
+ ignore_unknown_ids: Whether to ignore unknown IDs.
55
+ Returns:
56
+ List of retrieved mapping response objects.
57
+ """
58
+ return self._request_item_response(
59
+ items, method="retrieve", extra_body={"ignoreUnknownIds": ignore_unknown_ids}
60
+ )
61
+
62
+ def update(
63
+ self, items: Sequence[HostedExtractorMappingRequest], mode: Literal["patch", "replace"] = "replace"
64
+ ) -> list[HostedExtractorMappingResponse]:
65
+ """Update hosted extractor mappings in CDF.
66
+
67
+ Args:
68
+ items: List of mapping request objects to update.
69
+ mode: Update mode, either "patch" or "replace".
70
+
71
+ Returns:
72
+ List of updated mapping response objects.
73
+ """
74
+ return self._update(items, mode=mode)
75
+
76
+ def delete(self, items: Sequence[ExternalId], ignore_unknown_ids: bool = False, force: bool | None = None) -> None:
77
+ """Delete hosted extractor mappings from CDF.
78
+
79
+ Args:
80
+ items: List of ExternalId objects to delete.
81
+ ignore_unknown_ids: Whether to ignore unknown IDs.
82
+ force: Delete any jobs associated with each item.
83
+ """
84
+ extra_body: dict[str, Any] = {"ignoreUnknownIds": ignore_unknown_ids}
85
+ if force is not None:
86
+ extra_body["force"] = force
87
+
88
+ self._request_no_response(items, "delete", extra_body=extra_body)
89
+
90
+ def paginate(
91
+ self,
92
+ limit: int = 100,
93
+ cursor: str | None = None,
94
+ ) -> PagedResponse[HostedExtractorMappingResponse]:
95
+ """Iterate over hosted extractor mappings in CDF.
96
+
97
+ Args:
98
+ limit: Maximum number of items to return.
99
+ cursor: Cursor for pagination.
100
+
101
+ Returns:
102
+ PagedResponse of mapping response objects.
103
+ """
104
+ return self._paginate(cursor=cursor, limit=limit)
105
+
106
+ def iterate(
107
+ self,
108
+ limit: int = 100,
109
+ ) -> Iterable[list[HostedExtractorMappingResponse]]:
110
+ """Iterate over hosted extractor mappings in CDF.
111
+
112
+ Args:
113
+ limit: Maximum number of items to return per page.
114
+
115
+ Returns:
116
+ Iterable of lists of mapping response objects.
117
+ """
118
+ return self._iterate(limit=limit)
119
+
120
+ def list(self, limit: int | None = 100) -> list[HostedExtractorMappingResponse]:
121
+ """List all hosted extractor mappings in CDF.
122
+
123
+ Args:
124
+ limit: Maximum number of items to return. None for all items.
125
+
126
+ Returns:
127
+ List of mapping response objects.
128
+ """
129
+ return self._list(limit=limit)