cognite-toolkit 0.7.44__py3-none-any.whl → 0.7.46__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 (192) hide show
  1. cognite_toolkit/_cdf_tk/apps/_download_app.py +1 -1
  2. cognite_toolkit/_cdf_tk/apps/_dump_app.py +1 -1
  3. cognite_toolkit/_cdf_tk/builders/_raw.py +1 -1
  4. cognite_toolkit/_cdf_tk/client/_toolkit_client.py +19 -3
  5. cognite_toolkit/_cdf_tk/client/api/assets.py +31 -19
  6. cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
  7. cognite_toolkit/_cdf_tk/client/api/events.py +32 -18
  8. cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
  9. cognite_toolkit/_cdf_tk/client/api/filemetadata.py +48 -17
  10. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
  11. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
  12. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
  13. cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
  14. cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
  15. cognite_toolkit/_cdf_tk/client/api/infield.py +7 -7
  16. cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
  17. cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +2 -2
  18. cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
  19. cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
  20. cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
  21. cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
  22. cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
  23. cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
  24. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
  25. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
  26. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
  27. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
  28. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
  29. cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
  30. cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
  31. cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
  32. cognite_toolkit/_cdf_tk/client/api/project.py +1 -1
  33. cognite_toolkit/_cdf_tk/client/api/raw.py +39 -9
  34. cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
  35. cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
  36. cognite_toolkit/_cdf_tk/client/api/simulator_models.py +45 -9
  37. cognite_toolkit/_cdf_tk/client/api/streams.py +1 -1
  38. cognite_toolkit/_cdf_tk/client/api/three_d.py +11 -11
  39. cognite_toolkit/_cdf_tk/client/api/timeseries.py +32 -18
  40. cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
  41. cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
  42. cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
  43. cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
  44. cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
  45. cognite_toolkit/_cdf_tk/client/cdf_client/api.py +105 -35
  46. cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +5 -7
  47. cognite_toolkit/_cdf_tk/client/http_client/_exception.py +10 -1
  48. cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
  49. cognite_toolkit/_cdf_tk/client/request_classes/filters.py +38 -0
  50. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/agent.py +1 -1
  51. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/annotation.py +1 -1
  52. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/asset.py +1 -1
  53. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_constraints.py +1 -1
  54. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_container.py +1 -1
  55. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_data_model.py +1 -1
  56. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_data_types.py +1 -1
  57. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_indexes.py +1 -1
  58. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_instance.py +1 -1
  59. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_references.py +1 -1
  60. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_space.py +1 -1
  61. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_view.py +1 -1
  62. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/_view_property.py +1 -1
  63. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/dataset.py +1 -1
  64. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/event.py +1 -1
  65. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/extraction_pipeline.py +1 -1
  66. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/filemetadata.py +1 -1
  67. cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
  68. cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +61 -0
  69. cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
  70. cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
  71. cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
  72. cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
  73. cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
  74. cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +59 -0
  75. cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
  76. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_destination.py +1 -1
  77. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_job.py +1 -1
  78. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_mapping.py +1 -1
  79. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_auth.py +1 -1
  80. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_base.py +2 -2
  81. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_certificate.py +1 -1
  82. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_eventhub.py +1 -1
  83. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_kafka.py +1 -1
  84. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_mqtt.py +1 -1
  85. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/_rest.py +1 -1
  86. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/identifiers.py +1 -1
  87. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/label.py +1 -1
  88. cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
  89. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +1 -1
  90. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
  91. cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +77 -0
  92. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/raw.py +1 -1
  93. cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +43 -0
  94. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
  95. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
  96. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
  97. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
  98. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
  99. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
  100. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +60 -0
  101. cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +53 -0
  102. cognite_toolkit/_cdf_tk/client/resource_classes/search_config_resource.py +54 -0
  103. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/securitycategory.py +1 -1
  104. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/sequence.py +1 -1
  105. cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
  106. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/simulator_model.py +1 -1
  107. cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
  108. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +6 -5
  109. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/timeseries.py +1 -1
  110. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/transformation.py +1 -1
  111. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow.py +1 -1
  112. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow_trigger.py +1 -1
  113. cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/workflow_version.py +1 -1
  114. cognite_toolkit/_cdf_tk/client/testing.py +20 -2
  115. cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +5 -5
  116. cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
  117. cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +6 -6
  118. cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +6 -6
  119. cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
  120. cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +1 -1
  121. cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +8 -8
  122. cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
  123. cognite_toolkit/_cdf_tk/commands/_purge.py +1 -1
  124. cognite_toolkit/_cdf_tk/commands/build_cmd.py +1 -1
  125. cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
  126. cognite_toolkit/_cdf_tk/commands/run.py +1 -1
  127. cognite_toolkit/_cdf_tk/cruds/__init__.py +5 -1
  128. cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +3 -3
  129. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +2 -0
  130. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +2 -2
  131. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +11 -27
  132. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
  133. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
  134. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
  135. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +4 -4
  136. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +7 -14
  137. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
  138. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
  139. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +2 -2
  140. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
  141. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
  142. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +1 -1
  143. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
  144. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +122 -0
  145. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +2 -2
  146. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +6 -13
  147. cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
  148. cognite_toolkit/_cdf_tk/feature_flags.py +4 -0
  149. cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
  150. cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
  151. cognite_toolkit/_cdf_tk/storageio/_applications.py +3 -3
  152. cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +21 -27
  153. cognite_toolkit/_cdf_tk/storageio/_file_content.py +2 -2
  154. cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
  155. cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
  156. cognite_toolkit/_cdf_tk/utils/interactive_select.py +5 -5
  157. cognite_toolkit/_cdf_tk/utils/useful_types2.py +3 -3
  158. cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
  159. cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
  160. cognite_toolkit/_resources/cdf.toml +1 -1
  161. cognite_toolkit/_version.py +1 -1
  162. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/METADATA +3 -3
  163. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/RECORD +192 -152
  164. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/WHEEL +2 -2
  165. /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
  166. /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
  167. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/base.py +0 -0
  168. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
  169. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +0 -0
  170. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/data_modeling/__init__.py +0 -0
  171. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/hosted_extractor_source/__init__.py +0 -0
  172. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +0 -0
  173. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +0 -0
  174. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
  175. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
  176. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
  177. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
  178. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
  179. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
  180. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
  181. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
  182. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
  183. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
  184. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
  185. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
  186. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
  187. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
  188. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
  189. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
  190. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
  191. /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/three_d.py +0 -0
  192. {cognite_toolkit-0.7.44.dist-info → cognite_toolkit-0.7.46.dist-info}/entry_points.txt +0 -0
@@ -5,12 +5,6 @@ from cognite.client.data_classes import Annotation
5
5
  from cognite.client.data_classes.data_modeling import EdgeId, InstanceApply, NodeId
6
6
 
7
7
  from cognite_toolkit._cdf_tk.client import ToolkitClient
8
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.pending_instances_ids import PendingInstanceId
9
- from cognite_toolkit._cdf_tk.client.data_classes.three_d import (
10
- AssetMappingDMRequest,
11
- AssetMappingResponse,
12
- ThreeDModelResponse,
13
- )
14
8
  from cognite_toolkit._cdf_tk.client.http_client import (
15
9
  FailedResponse,
16
10
  HTTPClient,
@@ -20,6 +14,12 @@ from cognite_toolkit._cdf_tk.client.http_client import (
20
14
  SuccessResponseItems,
21
15
  ToolkitAPIError,
22
16
  )
17
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.pending_instances_ids import PendingInstanceId
18
+ from cognite_toolkit._cdf_tk.client.resource_classes.three_d import (
19
+ AssetMappingDMRequest,
20
+ AssetMappingResponse,
21
+ ThreeDModelResponse,
22
+ )
23
23
  from cognite_toolkit._cdf_tk.commands._migrate.data_classes import ThreeDMigrationRequest
24
24
  from cognite_toolkit._cdf_tk.constants import MISSING_EXTERNAL_ID, MISSING_INSTANCE_SPACE
25
25
  from cognite_toolkit._cdf_tk.exceptions import ToolkitNotImplementedError, ToolkitValueError
@@ -415,7 +415,7 @@ class ThreeDMigrationIO(UploadableStorageIO[ThreeDSelector, ThreeDModelResponse,
415
415
  total = 0
416
416
  while True:
417
417
  request_limit = min(self.DOWNLOAD_LIMIT, limit - total) if limit is not None else self.DOWNLOAD_LIMIT
418
- response = self.client.tool.three_d.models.iterate(
418
+ response = self.client.tool.three_d.models.paginate(
419
419
  published=published, include_revision_info=True, limit=request_limit, cursor=cursor
420
420
  )
421
421
  items = [item for item in response.items if self._is_selected(item, included_models)]
@@ -510,7 +510,7 @@ class ThreeDAssetMappingMigrationIO(UploadableStorageIO[ThreeDSelector, AssetMap
510
510
  )
511
511
  if limit is not None and total >= limit:
512
512
  return
513
- response = self.client.tool.three_d.asset_mappings.iterate(
513
+ response = self.client.tool.three_d.asset_mappings.paginate(
514
514
  model_id=model.id,
515
515
  revision_id=model.last_revision_info.revision_id,
516
516
  cursor=cursor,
@@ -21,7 +21,7 @@ from rich.spinner import Spinner
21
21
  from rich.table import Table
22
22
 
23
23
  from cognite_toolkit._cdf_tk.client import ToolkitClient
24
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawProfileResults, RawTable
24
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawProfileResults, RawTable
25
25
  from cognite_toolkit._cdf_tk.constants import MAX_ROW_ITERATION_RUN_QUERY
26
26
  from cognite_toolkit._cdf_tk.exceptions import ToolkitMissingDependencyError, ToolkitThrottledError, ToolkitValueError
27
27
  from cognite_toolkit._cdf_tk.utils.aggregators import (
@@ -16,7 +16,6 @@ from rich.console import Console
16
16
  from rich.panel import Panel
17
17
 
18
18
  from cognite_toolkit._cdf_tk.client import ToolkitClient
19
- from cognite_toolkit._cdf_tk.client.data_classes.instance_api import TypedInstanceIdentifier
20
19
  from cognite_toolkit._cdf_tk.client.http_client import (
21
20
  HTTPClient,
22
21
  ItemsRequest,
@@ -24,6 +23,7 @@ from cognite_toolkit._cdf_tk.client.http_client import (
24
23
  ItemsSuccessResponse2,
25
24
  SuccessResponseItems,
26
25
  )
26
+ from cognite_toolkit._cdf_tk.client.resource_classes.instance_api import TypedInstanceIdentifier
27
27
  from cognite_toolkit._cdf_tk.cruds import (
28
28
  AssetCRUD,
29
29
  ContainerCRUD,
@@ -14,7 +14,7 @@ from rich.progress import track
14
14
  from cognite_toolkit._cdf_tk.builders import Builder, create_builder
15
15
  from cognite_toolkit._cdf_tk.cdf_toml import CDFToml
16
16
  from cognite_toolkit._cdf_tk.client import ToolkitClient
17
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase
17
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawDatabase
18
18
  from cognite_toolkit._cdf_tk.commands._base import ToolkitCommand
19
19
  from cognite_toolkit._cdf_tk.constants import (
20
20
  _RUNNING_IN_BROWSER,
@@ -52,10 +52,10 @@ from rich.console import Console
52
52
  from rich.panel import Panel
53
53
 
54
54
  from cognite_toolkit._cdf_tk.client import ToolkitClient
55
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.location_filters import LocationFilterList
56
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.search_config import SearchConfigList
57
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.search_config import ViewId as SearchConfigViewId
58
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.streamlit_ import Streamlit, StreamlitList
55
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.location_filters import LocationFilterList
56
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.search_config import SearchConfigList
57
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.search_config import ViewId as SearchConfigViewId
58
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.streamlit_ import Streamlit, StreamlitList
59
59
  from cognite_toolkit._cdf_tk.cruds import (
60
60
  AgentCRUD,
61
61
  ContainerCRUD,
@@ -30,7 +30,7 @@ from rich.progress import Progress
30
30
  from rich.table import Table
31
31
 
32
32
  from cognite_toolkit._cdf_tk.client import ToolkitClient, ToolkitClientConfig
33
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.functions import FunctionScheduleID
33
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.functions import FunctionScheduleID
34
34
  from cognite_toolkit._cdf_tk.constants import _RUNNING_IN_BROWSER
35
35
  from cognite_toolkit._cdf_tk.cruds import FunctionCRUD, FunctionScheduleCRUD, WorkflowVersionCRUD
36
36
  from cognite_toolkit._cdf_tk.cruds._resource_cruds.workflow import WorkflowTriggerCRUD
@@ -60,6 +60,7 @@ from ._resource_cruds import (
60
60
  SecurityCategoryCRUD,
61
61
  SequenceCRUD,
62
62
  SequenceRowCRUD,
63
+ SimulatorModelCRUD,
63
64
  SpaceCRUD,
64
65
  StreamCRUD,
65
66
  StreamlitCRUD,
@@ -86,7 +87,8 @@ if not FeatureFlag.is_enabled(Flags.MIGRATE):
86
87
  _EXCLUDED_CRUDS.add(ResourceViewMappingCRUD)
87
88
  if not FeatureFlag.is_enabled(Flags.STREAMS):
88
89
  _EXCLUDED_CRUDS.add(StreamCRUD)
89
-
90
+ if not FeatureFlag.is_enabled(Flags.SIMULATORS):
91
+ _EXCLUDED_CRUDS.add(SimulatorModelCRUD)
90
92
 
91
93
  CRUDS_BY_FOLDER_NAME: dict[str, list[type[Loader]]] = {}
92
94
  for _loader in itertools.chain(
@@ -142,6 +144,7 @@ ResourceTypes: TypeAlias = Literal[
142
144
  "functions",
143
145
  "raw",
144
146
  "robotics",
147
+ "simulators",
145
148
  "streams",
146
149
  "streamlit",
147
150
  "workflows",
@@ -209,6 +212,7 @@ __all__ = [
209
212
  "SecurityCategoryCRUD",
210
213
  "SequenceCRUD",
211
214
  "SequenceRowCRUD",
215
+ "SimulatorModelCRUD",
212
216
  "SpaceCRUD",
213
217
  "StreamlitCRUD",
214
218
  "ThreeDModelCRUD",
@@ -6,9 +6,9 @@ from typing import TYPE_CHECKING, cast, final
6
6
  import pandas as pd
7
7
  from cognite.client.data_classes import FileMetadataWrite
8
8
 
9
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId
10
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.extendable_cognite_file import ExtendableCogniteFileApply
11
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawTable
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
10
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.extendable_cognite_file import ExtendableCogniteFileApply
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawTable
12
12
  from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING
13
13
  from cognite_toolkit._cdf_tk.protocols import (
14
14
  T_ResourceRequest,
@@ -35,6 +35,7 @@ from .robotics import (
35
35
  RoboticMapCRUD,
36
36
  RoboticsDataPostProcessingCRUD,
37
37
  )
38
+ from .simulators import SimulatorModelCRUD
38
39
  from .streams import StreamCRUD
39
40
  from .three_d_model import ThreeDModelCRUD
40
41
  from .timeseries import DatapointSubscriptionCRUD, TimeSeriesCRUD
@@ -83,6 +84,7 @@ __all__ = [
83
84
  "SecurityCategoryCRUD",
84
85
  "SequenceCRUD",
85
86
  "SequenceRowCRUD",
87
+ "SimulatorModelCRUD",
86
88
  "SpaceCRUD",
87
89
  "StreamCRUD",
88
90
  "StreamlitCRUD",
@@ -41,8 +41,8 @@ from rich.console import Console
41
41
  from rich.markup import escape
42
42
 
43
43
  from cognite_toolkit._cdf_tk.client import ToolkitClient
44
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId
45
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase, RawTable
44
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
45
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawDatabase, RawTable
46
46
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
47
47
  from cognite_toolkit._cdf_tk.exceptions import ToolkitWrongResourceError
48
48
  from cognite_toolkit._cdf_tk.resource_classes import GroupYAML, SecurityCategoriesYAML
@@ -17,14 +17,15 @@ from cognite.client.utils.useful_types import SequenceNotStr
17
17
  from rich.console import Console
18
18
 
19
19
  from cognite_toolkit._cdf_tk.client import ToolkitClient
20
- from cognite_toolkit._cdf_tk.client.data_classes.asset import (
20
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
21
+ from cognite_toolkit._cdf_tk.client.resource_classes.asset import (
21
22
  AssetAggregateItem,
22
23
  AssetRequest,
23
24
  AssetResponse,
24
25
  )
25
- from cognite_toolkit._cdf_tk.client.data_classes.event import EventRequest, EventResponse
26
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId, InternalOrExternalId
27
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.sequences import (
26
+ from cognite_toolkit._cdf_tk.client.resource_classes.event import EventRequest, EventResponse
27
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
28
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.sequences import (
28
29
  ToolkitSequenceRows,
29
30
  ToolkitSequenceRowsList,
30
31
  ToolkitSequenceRowsWrite,
@@ -140,18 +141,9 @@ class AssetCRUD(ResourceCRUD[ExternalId, AssetRequest, AssetResponse]):
140
141
  space: str | None = None,
141
142
  parent_ids: list[Hashable] | None = None,
142
143
  ) -> Iterable[AssetResponse]:
143
- cursor: str | None = None
144
- while True:
145
- page = self.client.tool.assets.iterate(
146
- limit=1000,
147
- cursor=cursor,
148
- data_set_external_ids=[data_set_external_id] if data_set_external_id else None,
149
- aggregated_properties=True,
150
- )
151
- yield from page.items
152
- if not page.next_cursor or not page.items:
153
- break
154
- cursor = page.next_cursor
144
+ filter_ = ClassicFilter.from_asset_subtree_and_data_sets(data_set_id=data_set_external_id)
145
+ for assets in self.client.tool.assets.iterate(aggregated_properties=True, filter=filter_, limit=None):
146
+ yield from assets
155
147
 
156
148
  @classmethod
157
149
  def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
@@ -570,17 +562,9 @@ class EventCRUD(ResourceCRUD[ExternalId, EventRequest, EventResponse]):
570
562
  space: str | None = None,
571
563
  parent_ids: list[Hashable] | None = None,
572
564
  ) -> Iterable[EventResponse]:
573
- cursor: str | None = None
574
- while True:
575
- page = self.client.tool.events.iterate(
576
- data_set_external_ids=[data_set_external_id] if data_set_external_id else None,
577
- limit=1000,
578
- cursor=cursor,
579
- )
580
- yield from page.items
581
- if not page.next_cursor or not page.items:
582
- break
583
- cursor = page.next_cursor
565
+ filter_ = ClassicFilter.from_asset_subtree_and_data_sets(data_set_id=data_set_external_id)
566
+ for events in self.client.tool.events.iterate(filter=filter_, limit=None):
567
+ yield from events
584
568
 
585
569
  @classmethod
586
570
  def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
@@ -7,7 +7,7 @@ from cognite.client.utils.useful_types import SequenceNotStr
7
7
  from rich.console import Console
8
8
 
9
9
  from cognite_toolkit._cdf_tk.client import ToolkitClient
10
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.search_config import (
10
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.search_config import (
11
11
  SearchConfig,
12
12
  SearchConfigList,
13
13
  SearchConfigWrite,
@@ -73,7 +73,7 @@ from rich.panel import Panel
73
73
 
74
74
  from cognite_toolkit._cdf_tk import constants
75
75
  from cognite_toolkit._cdf_tk.client import ToolkitClient
76
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.graphql_data_models import (
76
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.graphql_data_models import (
77
77
  GraphQLDataModel,
78
78
  GraphQLDataModelList,
79
79
  GraphQLDataModelWrite,
@@ -35,7 +35,7 @@ from cognite.client.data_classes.extractionpipelines import (
35
35
  from cognite.client.exceptions import CogniteAPIError, CogniteDuplicatedError, CogniteNotFoundError
36
36
  from cognite.client.utils.useful_types import SequenceNotStr
37
37
 
38
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase, RawTable
38
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawDatabase, RawTable
39
39
  from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING
40
40
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
41
41
  from cognite_toolkit._cdf_tk.exceptions import (
@@ -8,14 +8,14 @@ from cognite.client.data_classes.data_modeling import NodeApplyResultList, NodeI
8
8
  from cognite.client.exceptions import CogniteAPIError
9
9
  from cognite.client.utils.useful_types import SequenceNotStr
10
10
 
11
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId
12
- from cognite_toolkit._cdf_tk.client.data_classes.infield import (
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.infield import (
13
13
  InFieldCDMLocationConfig,
14
14
  InfieldLocationConfig,
15
15
  InfieldLocationConfigList,
16
16
  )
17
- from cognite_toolkit._cdf_tk.client.data_classes.instance_api import InstanceResult, TypedNodeIdentifier
18
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.apm_config_v1 import (
17
+ from cognite_toolkit._cdf_tk.client.resource_classes.instance_api import InstanceResult, TypedNodeIdentifier
18
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.apm_config_v1 import (
19
19
  APMConfig,
20
20
  APMConfigList,
21
21
  APMConfigWrite,
@@ -27,9 +27,10 @@ from cognite.client.exceptions import CogniteAPIError
27
27
  from cognite.client.utils._time import convert_data_modelling_timestamp
28
28
  from cognite.client.utils.useful_types import SequenceNotStr
29
29
 
30
- from cognite_toolkit._cdf_tk.client.data_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
31
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId, InternalOrExternalId
32
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.extendable_cognite_file import (
30
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
31
+ from cognite_toolkit._cdf_tk.client.resource_classes.filemetadata import FileMetadataRequest, FileMetadataResponse
32
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
33
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.extendable_cognite_file import (
33
34
  ExtendableCogniteFile,
34
35
  ExtendableCogniteFileApply,
35
36
  ExtendableCogniteFileList,
@@ -158,17 +159,9 @@ class FileMetadataCRUD(ResourceContainerCRUD[ExternalId, FileMetadataRequest, Fi
158
159
  space: str | None = None,
159
160
  parent_ids: list[Hashable] | None = None,
160
161
  ) -> Iterable[FileMetadataResponse]:
161
- cursor: str | None = None
162
- while True:
163
- page = self.client.tool.filemetadata.iterate(
164
- data_set_external_ids=[data_set_external_id] if data_set_external_id else None,
165
- limit=1000,
166
- cursor=cursor,
167
- )
168
- yield from page.items
169
- if not page.next_cursor or not page.items:
170
- break
171
- cursor = page.next_cursor
162
+ filter_ = ClassicFilter.from_asset_subtree_and_data_sets(data_set_id=data_set_external_id)
163
+ for files in self.client.tool.filemetadata.iterate(filter=filter_, limit=None):
164
+ yield from files
172
165
 
173
166
  def count(self, ids: SequenceNotStr[ExternalId]) -> int:
174
167
  return sum(
@@ -31,7 +31,7 @@ from rich import print
31
31
  from rich.console import Console
32
32
 
33
33
  from cognite_toolkit._cdf_tk.client import ToolkitClient
34
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.functions import FunctionScheduleID
34
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.functions import FunctionScheduleID
35
35
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
36
36
  from cognite_toolkit._cdf_tk.exceptions import (
37
37
  ResourceCreationError,
@@ -14,7 +14,7 @@ from packaging.requirements import Requirement
14
14
  from rich.console import Console
15
15
 
16
16
  from cognite_toolkit._cdf_tk.client import ToolkitClient
17
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.streamlit_ import (
17
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.streamlit_ import (
18
18
  Streamlit,
19
19
  StreamlitList,
20
20
  StreamlitWrite,
@@ -7,8 +7,8 @@ from cognite.client.data_classes.capabilities import Capability, LocationFilters
7
7
  from cognite.client.data_classes.data_modeling import DataModelId, ViewId
8
8
  from cognite.client.utils.useful_types import SequenceNotStr
9
9
 
10
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId
11
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.location_filters import (
10
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
11
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.location_filters import (
12
12
  LocationFilter,
13
13
  LocationFilterList,
14
14
  LocationFilterWrite,
@@ -6,7 +6,7 @@ from cognite.client.data_classes.capabilities import Capability
6
6
  from cognite.client.data_classes.data_modeling import NodeList, ViewId
7
7
  from cognite.client.utils.useful_types import SequenceNotStr
8
8
 
9
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.migration import (
9
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.migration import (
10
10
  ResourceViewMapping,
11
11
  ResourceViewMappingApply,
12
12
  )
@@ -29,7 +29,12 @@ from rich import print
29
29
  from rich.console import Console
30
30
 
31
31
  from cognite_toolkit._cdf_tk.client import ToolkitClient
32
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase, RawDatabaseList, RawTable, RawTableList
32
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import (
33
+ RawDatabase,
34
+ RawDatabaseList,
35
+ RawTable,
36
+ RawTableList,
37
+ )
33
38
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceContainerCRUD, ResourceCRUD
34
39
  from cognite_toolkit._cdf_tk.resource_classes import DatabaseYAML, TableYAML
35
40
 
@@ -11,7 +11,7 @@ from cognite.client.data_classes.capabilities import Capability
11
11
  from cognite.client.exceptions import CogniteAPIError, CogniteNotFoundError
12
12
  from cognite.client.utils.useful_types import SequenceNotStr
13
13
 
14
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId
14
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId
15
15
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
16
16
  from cognite_toolkit._cdf_tk.resource_classes import RelationshipYAML
17
17
 
@@ -9,7 +9,7 @@ from cognite.client.data_classes.capabilities import Capability
9
9
  from cognite.client.exceptions import CogniteAPIError
10
10
  from cognite.client.utils.useful_types import SequenceNotStr
11
11
 
12
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.robotics import (
12
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.robotics import (
13
13
  DataPostProcessing,
14
14
  DataPostProcessingList,
15
15
  DataPostProcessingWrite,
@@ -0,0 +1,122 @@
1
+ from collections.abc import Hashable, Iterable, Sequence
2
+ from typing import Any, final
3
+
4
+ from cognite.client.data_classes.capabilities import Capability
5
+ from cognite.client.utils.useful_types import SequenceNotStr
6
+
7
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.simulator_model import (
9
+ SimulatorModelRequest,
10
+ SimulatorModelResponse,
11
+ )
12
+ from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
13
+ from cognite_toolkit._cdf_tk.resource_classes import SimulatorModelYAML
14
+
15
+ from .data_organization import DataSetsCRUD
16
+
17
+
18
+ @final
19
+ class SimulatorModelCRUD(ResourceCRUD[ExternalId, SimulatorModelRequest, SimulatorModelResponse]):
20
+ folder_name = "simulators"
21
+ resource_cls = SimulatorModelResponse
22
+ resource_write_cls = SimulatorModelRequest
23
+ yaml_cls = SimulatorModelYAML
24
+ kind = "SimulatorModel"
25
+ dependencies = frozenset({DataSetsCRUD})
26
+ _doc_url = "Simulator-Models/operation/create_simulator_model_simulators_models_post"
27
+
28
+ @property
29
+ def display_name(self) -> str:
30
+ return "simulator models"
31
+
32
+ @classmethod
33
+ def get_id(cls, item: SimulatorModelRequest | SimulatorModelResponse | dict) -> ExternalId:
34
+ if isinstance(item, dict):
35
+ return ExternalId(external_id=item["externalId"])
36
+ if not item.external_id:
37
+ raise KeyError("SimulatorModel must have external_id")
38
+ return ExternalId(external_id=item.external_id)
39
+
40
+ @classmethod
41
+ def get_internal_id(cls, item: SimulatorModelResponse | dict) -> int:
42
+ if isinstance(item, dict):
43
+ return item["id"]
44
+ if not item.id:
45
+ raise KeyError("SimulatorModel must have id")
46
+ return item.id
47
+
48
+ @classmethod
49
+ def dump_id(cls, id: ExternalId) -> dict[str, Any]:
50
+ return id.dump()
51
+
52
+ @classmethod
53
+ def get_required_capability(
54
+ cls, items: Sequence[SimulatorModelRequest] | None, read_only: bool
55
+ ) -> Capability | list[Capability]:
56
+ # Simulator ACLs is not yet implemented in the PySDK, which means
57
+ # that we cannot check for specific capabilities.
58
+ return []
59
+
60
+ def create(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
61
+ return self.client.tool.simulators.models.create(items)
62
+
63
+ def retrieve(self, ids: SequenceNotStr[ExternalId]) -> list[SimulatorModelResponse]:
64
+ return self.client.tool.simulators.models.retrieve(list(ids), ignore_unknown_ids=True)
65
+
66
+ def update(self, items: Sequence[SimulatorModelRequest]) -> list[SimulatorModelResponse]:
67
+ return self.client.tool.simulators.models.update(items, mode="replace")
68
+
69
+ def delete(self, ids: SequenceNotStr[ExternalId | InternalOrExternalId]) -> int:
70
+ if not ids:
71
+ return 0
72
+ self.client.tool.simulators.models.delete(list(ids))
73
+ return len(ids)
74
+
75
+ def _iterate(
76
+ self,
77
+ data_set_external_id: str | None = None,
78
+ space: str | None = None,
79
+ parent_ids: list[Hashable] | None = None,
80
+ ) -> Iterable[SimulatorModelResponse]:
81
+ # Note: The SimulatorModelsAPI doesn't support data_set_external_id filtering directly,
82
+ # so we iterate and filter in memory if needed.
83
+ cursor: str | None = None
84
+ data_set_id: int | None = None
85
+ if data_set_external_id:
86
+ data_set_id = self.client.lookup.data_sets.id(data_set_external_id, is_dry_run=False)
87
+ while True:
88
+ page = self.client.tool.simulators.models.paginate(
89
+ limit=1000,
90
+ cursor=cursor,
91
+ )
92
+ if data_set_id:
93
+ # Filter by data_set_external_id in memory
94
+ for item in page.items:
95
+ if item.data_set_id == data_set_id:
96
+ yield item
97
+ else:
98
+ yield from page.items
99
+ if not page.next_cursor or not page.items:
100
+ break
101
+ cursor = page.next_cursor
102
+
103
+ @classmethod
104
+ def get_dependent_items(cls, item: dict) -> Iterable[tuple[type[ResourceCRUD], Hashable]]:
105
+ """Returns all items that this item requires.
106
+
107
+ For example, a SimulatorModel requires a DataSet, so this method would return the
108
+ DataSetsCRUD and identifier of that dataset.
109
+ """
110
+ if "dataSetExternalId" in item:
111
+ yield DataSetsCRUD, item["dataSetExternalId"]
112
+
113
+ def load_resource(self, resource: dict[str, Any], is_dry_run: bool = False) -> SimulatorModelRequest:
114
+ if ds_external_id := resource.pop("dataSetExternalId", None):
115
+ resource["dataSetId"] = self.client.lookup.data_sets.id(ds_external_id, is_dry_run)
116
+ return SimulatorModelRequest.model_validate(resource)
117
+
118
+ def dump_resource(self, resource: SimulatorModelResponse, local: dict[str, Any] | None = None) -> dict[str, Any]:
119
+ dumped = resource.as_request_resource().dump()
120
+ if data_set_id := dumped.pop("dataSetId", None):
121
+ dumped["dataSetExternalId"] = self.client.lookup.data_sets.external_id(data_set_id)
122
+ return dumped
@@ -4,12 +4,12 @@ from typing import Any, final
4
4
  from cognite.client.data_classes.capabilities import Capability, StreamsAcl
5
5
  from cognite.client.utils.useful_types import SequenceNotStr
6
6
 
7
- from cognite_toolkit._cdf_tk.client.data_classes.streams import (
7
+ from cognite_toolkit._cdf_tk.client.http_client import ToolkitAPIError
8
+ from cognite_toolkit._cdf_tk.client.resource_classes.streams import (
8
9
  StreamRequest,
9
10
  StreamResponse,
10
11
  StreamResponseList,
11
12
  )
12
- from cognite_toolkit._cdf_tk.client.http_client import ToolkitAPIError
13
13
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
14
14
  from cognite_toolkit._cdf_tk.resource_classes import StreamYAML
15
15
 
@@ -20,8 +20,9 @@ from cognite.client.data_classes.datapoints_subscriptions import TimeSeriesIDLis
20
20
  from cognite.client.exceptions import CogniteAPIError, CogniteNotFoundError
21
21
  from cognite.client.utils.useful_types import SequenceNotStr
22
22
 
23
- from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId, InternalOrExternalId
24
- from cognite_toolkit._cdf_tk.client.data_classes.timeseries import TimeSeriesRequest, TimeSeriesResponse
23
+ from cognite_toolkit._cdf_tk.client.request_classes.filters import ClassicFilter
24
+ from cognite_toolkit._cdf_tk.client.resource_classes.identifiers import ExternalId, InternalOrExternalId
25
+ from cognite_toolkit._cdf_tk.client.resource_classes.timeseries import TimeSeriesRequest, TimeSeriesResponse
25
26
  from cognite_toolkit._cdf_tk.constants import MAX_TIMESTAMP_MS, MIN_TIMESTAMP_MS
26
27
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceContainerCRUD, ResourceCRUD
27
28
  from cognite_toolkit._cdf_tk.exceptions import (
@@ -140,17 +141,9 @@ class TimeSeriesCRUD(ResourceContainerCRUD[ExternalId, TimeSeriesRequest, TimeSe
140
141
  space: str | None = None,
141
142
  parent_ids: list[Hashable] | None = None,
142
143
  ) -> Iterable[TimeSeriesResponse]:
143
- cursor: str | None = None
144
- while True:
145
- page = self.client.tool.timeseries.iterate(
146
- data_set_external_ids=[data_set_external_id] if data_set_external_id else None,
147
- limit=1000,
148
- cursor=cursor,
149
- )
150
- yield from page.items
151
- if not page.next_cursor or not page.items:
152
- break
153
- cursor = page.next_cursor
144
+ filter_ = ClassicFilter.from_asset_subtree_and_data_sets(data_set_id=data_set_external_id)
145
+ for timeseries in self.client.tool.timeseries.iterate(filter=filter_, limit=None):
146
+ yield from timeseries
154
147
 
155
148
  def count(self, ids: SequenceNotStr[ExternalId]) -> int:
156
149
  datapoints = self.client.time_series.data.retrieve(
@@ -65,7 +65,7 @@ from rich import print
65
65
  from rich.console import Console
66
66
 
67
67
  from cognite_toolkit._cdf_tk.client import ToolkitClient
68
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.raw import RawDatabase, RawTable
68
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.raw import RawDatabase, RawTable
69
69
  from cognite_toolkit._cdf_tk.constants import BUILD_FOLDER_ENCODING
70
70
  from cognite_toolkit._cdf_tk.cruds._base_cruds import ResourceCRUD
71
71
  from cognite_toolkit._cdf_tk.exceptions import (
@@ -61,6 +61,10 @@ class Flags(Enum):
61
61
  visible=True,
62
62
  description="Enables extended upload to support uploading individual files",
63
63
  )
64
+ SIMULATORS = FlagMetadata(
65
+ visible=True,
66
+ description="Enables the support for simulator model resources",
67
+ )
64
68
 
65
69
  def is_enabled(self) -> bool:
66
70
  return FeatureFlag.is_enabled(self)
@@ -510,6 +510,12 @@ class LegacyGenericsAcl(Capability):
510
510
  scope: AllScope
511
511
 
512
512
 
513
+ class SimulatorsAcl(Capability):
514
+ _capability_name = "simulatorsAcl"
515
+ actions: list[Literal["READ", "WRITE", "DELETE", "RUN", "MANAGE"]]
516
+ scope: AllScope | DataSetScope
517
+
518
+
513
519
  class StreamsAcl(Capability):
514
520
  _capability_name = "streamsAcl"
515
521
  actions: list[Literal["READ", "CREATE", "DELETE"]]
@@ -2,7 +2,7 @@ from typing import ClassVar
2
2
 
3
3
  from pydantic import Field
4
4
 
5
- from cognite_toolkit._cdf_tk.client.data_classes.legacy.search_config import SearchConfigWrite
5
+ from cognite_toolkit._cdf_tk.client.resource_classes.legacy.search_config import SearchConfigWrite
6
6
 
7
7
  from .base import BaseModelResource, ToolkitResource
8
8