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.
- cognite_toolkit/_cdf_tk/apps/_download_app.py +1 -1
- cognite_toolkit/_cdf_tk/apps/_dump_app.py +1 -1
- cognite_toolkit/_cdf_tk/apps/_migrate_app.py +6 -6
- cognite_toolkit/_cdf_tk/builders/_function.py +81 -9
- cognite_toolkit/_cdf_tk/builders/_raw.py +1 -1
- cognite_toolkit/_cdf_tk/client/_resource_base.py +187 -0
- cognite_toolkit/_cdf_tk/client/_toolkit_client.py +37 -5
- cognite_toolkit/_cdf_tk/client/api/agents.py +107 -0
- cognite_toolkit/_cdf_tk/client/api/annotations.py +129 -0
- cognite_toolkit/_cdf_tk/client/api/assets.py +130 -0
- cognite_toolkit/_cdf_tk/client/api/containers.py +132 -0
- cognite_toolkit/_cdf_tk/client/api/data_models.py +137 -0
- cognite_toolkit/_cdf_tk/client/api/datasets.py +141 -0
- cognite_toolkit/_cdf_tk/client/api/events.py +129 -0
- cognite_toolkit/_cdf_tk/client/api/extraction_pipelines.py +148 -0
- cognite_toolkit/_cdf_tk/client/api/filemetadata.py +176 -0
- cognite_toolkit/_cdf_tk/client/api/function_schedules.py +115 -0
- cognite_toolkit/_cdf_tk/client/api/functions.py +113 -0
- cognite_toolkit/_cdf_tk/client/api/graphql_data_models.py +167 -0
- cognite_toolkit/_cdf_tk/client/api/groups.py +121 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_destinations.py +131 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_jobs.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_mappings.py +129 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractor_sources.py +136 -0
- cognite_toolkit/_cdf_tk/client/api/hosted_extractors.py +23 -0
- cognite_toolkit/_cdf_tk/client/api/infield.py +8 -8
- cognite_toolkit/_cdf_tk/client/api/instances.py +139 -0
- cognite_toolkit/_cdf_tk/client/api/labels.py +125 -0
- cognite_toolkit/_cdf_tk/client/api/legacy/canvas.py +3 -3
- cognite_toolkit/_cdf_tk/client/api/legacy/charts.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_data_modeling.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_files.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_functions.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_raw.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/extended_timeseries.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/legacy/location_filters.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/capabilities.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/data_postprocessing.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/frames.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/locations.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/maps.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/robotics/robots.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/legacy/search_config.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/location_filters.py +177 -0
- cognite_toolkit/_cdf_tk/client/api/migration.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/project.py +2 -2
- cognite_toolkit/_cdf_tk/client/api/raw.py +204 -0
- cognite_toolkit/_cdf_tk/client/api/relationships.py +133 -0
- cognite_toolkit/_cdf_tk/client/api/robotics.py +19 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_capabilities.py +127 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_data_postprocessing.py +138 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_frames.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_locations.py +127 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_maps.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/robotics_robots.py +122 -0
- cognite_toolkit/_cdf_tk/client/api/search_config.py +101 -0
- cognite_toolkit/_cdf_tk/client/api/security_categories.py +94 -0
- cognite_toolkit/_cdf_tk/client/api/sequences.py +133 -0
- cognite_toolkit/_cdf_tk/client/api/simulator_models.py +154 -0
- cognite_toolkit/_cdf_tk/client/api/simulators.py +8 -0
- cognite_toolkit/_cdf_tk/client/api/spaces.py +117 -0
- cognite_toolkit/_cdf_tk/client/api/streams.py +65 -57
- cognite_toolkit/_cdf_tk/client/api/three_d.py +300 -283
- cognite_toolkit/_cdf_tk/client/api/timeseries.py +137 -0
- cognite_toolkit/_cdf_tk/client/api/token.py +1 -1
- cognite_toolkit/_cdf_tk/client/api/transformations.py +146 -0
- cognite_toolkit/_cdf_tk/client/api/views.py +139 -0
- cognite_toolkit/_cdf_tk/client/api/workflow_triggers.py +128 -0
- cognite_toolkit/_cdf_tk/client/api/workflow_versions.py +138 -0
- cognite_toolkit/_cdf_tk/client/api/workflows.py +119 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/__init__.py +10 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/api.py +358 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/responses.py +38 -0
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/__init__.py +9 -7
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/_client.py +23 -14
- cognite_toolkit/_cdf_tk/{utils → client}/http_client/_data_classes.py +12 -2
- cognite_toolkit/_cdf_tk/client/http_client/_data_classes2.py +151 -0
- cognite_toolkit/_cdf_tk/client/http_client/_exception.py +13 -0
- cognite_toolkit/_cdf_tk/client/http_client/_item_classes.py +118 -0
- cognite_toolkit/_cdf_tk/client/request_classes/base.py +19 -0
- cognite_toolkit/_cdf_tk/client/request_classes/filters.py +113 -0
- cognite_toolkit/_cdf_tk/client/request_classes/graphql.py +28 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/agent.py +130 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/annotation.py +79 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/apm_config.py +128 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/asset.py +47 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/charts_data.py +1 -1
- cognite_toolkit/_cdf_tk/client/resource_classes/cognite_file.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/__init__.py +168 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_constraints.py +37 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_container.py +50 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_model.py +73 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_data_types.py +116 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_indexes.py +26 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_instance.py +154 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_references.py +86 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_space.py +26 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view.py +143 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/data_modeling/_view_property.py +152 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/dataset.py +35 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/event.py +40 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/extraction_pipeline.py +59 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/filemetadata.py +52 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/function.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/function_schedule.py +65 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/graphql_data_model.py +40 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/__init__.py +187 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/_constants.py +2 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/acls.py +653 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/capability.py +56 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/group.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/group/scopes.py +166 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_destination.py +34 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_job.py +134 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_mapping.py +72 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/__init__.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_auth.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_base.py +26 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_certificate.py +20 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_eventhub.py +31 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_kafka.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_mqtt.py +36 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/hosted_extractor_source/_rest.py +49 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/identifiers.py +59 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/infield.py +1 -1
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/instance_api.py +35 -1
- cognite_toolkit/_cdf_tk/client/resource_classes/label.py +27 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/legacy/__init__.py +0 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/canvas.py +48 -15
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/charts.py +1 -1
- cognite_toolkit/_cdf_tk/client/resource_classes/location_filter.py +84 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/raw.py +44 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/relationship.py +49 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/resource_view_mapping.py +38 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/__init__.py +37 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_capability.py +53 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_common.py +34 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_data_post_processing.py +49 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_frame.py +46 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_location.py +36 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_map.py +65 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/robotics/_robot.py +58 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/search_config.py +54 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/securitycategory.py +24 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/sequence.py +45 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/sequence_rows.py +56 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/simulator_model.py +50 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/streamlit_.py +71 -0
- cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/streams.py +9 -26
- cognite_toolkit/_cdf_tk/client/resource_classes/three_d.py +135 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/timeseries.py +52 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/transformation.py +140 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/workflow.py +27 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/workflow_trigger.py +63 -0
- cognite_toolkit/_cdf_tk/client/resource_classes/workflow_version.py +155 -0
- cognite_toolkit/_cdf_tk/client/testing.py +31 -2
- cognite_toolkit/_cdf_tk/commands/_migrate/command.py +103 -108
- cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +22 -15
- cognite_toolkit/_cdf_tk/commands/_migrate/creators.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_migrate/data_classes.py +11 -10
- cognite_toolkit/_cdf_tk/commands/_migrate/data_mapper.py +148 -57
- cognite_toolkit/_cdf_tk/commands/_migrate/default_mappings.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_migrate/issues.py +22 -39
- cognite_toolkit/_cdf_tk/commands/_migrate/migration_io.py +29 -27
- cognite_toolkit/_cdf_tk/commands/_profile.py +1 -1
- cognite_toolkit/_cdf_tk/commands/_purge.py +8 -8
- cognite_toolkit/_cdf_tk/commands/_upload.py +1 -1
- cognite_toolkit/_cdf_tk/commands/build_cmd.py +12 -2
- cognite_toolkit/_cdf_tk/commands/build_v2/_module_parser.py +138 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/_modules_parser.py +163 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/build_cmd.py +83 -96
- cognite_toolkit/_cdf_tk/commands/build_v2/{build_input.py → build_parameters.py} +8 -22
- cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_modules.py +27 -0
- cognite_toolkit/_cdf_tk/commands/build_v2/data_classes/_resource.py +22 -0
- cognite_toolkit/_cdf_tk/commands/dump_resource.py +4 -4
- cognite_toolkit/_cdf_tk/commands/pull.py +97 -2
- cognite_toolkit/_cdf_tk/commands/run.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/__init__.py +16 -6
- cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +9 -5
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/auth.py +6 -2
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/classic.py +70 -89
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/configuration.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/datamodel.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/extraction_pipeline.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/fieldops.py +14 -7
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +50 -59
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/function.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/industrial_tool.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/location.py +4 -3
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/migration.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/raw.py +6 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +5 -4
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/robotics.py +1 -1
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/simulators.py +122 -0
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/streams.py +15 -31
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/timeseries.py +42 -47
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/transformation.py +1 -1
- cognite_toolkit/_cdf_tk/data_classes/__init__.py +3 -0
- cognite_toolkit/_cdf_tk/data_classes/_issues.py +36 -0
- cognite_toolkit/_cdf_tk/data_classes/_module_directories.py +2 -1
- cognite_toolkit/_cdf_tk/data_classes/_tracking_info.py +4 -0
- cognite_toolkit/_cdf_tk/feature_flags.py +8 -0
- cognite_toolkit/_cdf_tk/resource_classes/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/resource_classes/capabilities.py +6 -0
- cognite_toolkit/_cdf_tk/resource_classes/search_config.py +1 -1
- cognite_toolkit/_cdf_tk/resource_classes/simulator_model.py +17 -0
- cognite_toolkit/_cdf_tk/resource_classes/workflow_version.py +13 -4
- cognite_toolkit/_cdf_tk/storageio/_applications.py +53 -15
- cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +117 -107
- cognite_toolkit/_cdf_tk/storageio/_base.py +3 -1
- cognite_toolkit/_cdf_tk/storageio/_datapoints.py +7 -7
- cognite_toolkit/_cdf_tk/storageio/_file_content.py +64 -54
- cognite_toolkit/_cdf_tk/storageio/_instances.py +1 -1
- cognite_toolkit/_cdf_tk/storageio/_raw.py +1 -1
- cognite_toolkit/_cdf_tk/storageio/logger.py +162 -0
- cognite_toolkit/_cdf_tk/tk_warnings/__init__.py +2 -0
- cognite_toolkit/_cdf_tk/tk_warnings/fileread.py +20 -0
- cognite_toolkit/_cdf_tk/utils/__init__.py +11 -1
- cognite_toolkit/_cdf_tk/utils/cdf.py +1 -1
- cognite_toolkit/_cdf_tk/utils/interactive_select.py +8 -6
- cognite_toolkit/_cdf_tk/utils/modules.py +7 -0
- cognite_toolkit/_cdf_tk/utils/pip_validator.py +96 -0
- cognite_toolkit/_cdf_tk/utils/useful_types.py +4 -7
- cognite_toolkit/_cdf_tk/utils/useful_types2.py +14 -0
- cognite_toolkit/_repo_files/GitHub/.github/workflows/deploy.yaml +1 -1
- cognite_toolkit/_repo_files/GitHub/.github/workflows/dry-run.yaml +1 -1
- cognite_toolkit/_resources/cdf.toml +1 -1
- cognite_toolkit/_version.py +1 -1
- {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/METADATA +13 -3
- cognite_toolkit-0.7.51.dist-info/RECORD +445 -0
- {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/WHEEL +2 -2
- cognite_toolkit/_cdf_tk/client/data_classes/api_classes.py +0 -30
- cognite_toolkit/_cdf_tk/client/data_classes/base.py +0 -67
- cognite_toolkit/_cdf_tk/client/data_classes/three_d.py +0 -112
- cognite_toolkit/_cdf_tk/commands/build_v2/build_issues.py +0 -27
- cognite_toolkit/_cdf_tk/utils/http_client/_data_classes2.py +0 -247
- cognite_toolkit/_cdf_tk/utils/http_client/_exception.py +0 -4
- cognite_toolkit-0.7.39.dist-info/RECORD +0 -322
- /cognite_toolkit/_cdf_tk/{utils → client}/http_client/_tracker.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → request_classes}/__init__.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes/legacy → resource_classes}/__init__.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/capabilities.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/apm_config_v1.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extendable_cognite_file.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetadata.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_filemetdata.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/extended_timeseries.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/functions.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/graphql_data_models.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/instances.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/location_filters.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/migration.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/pending_instances_ids.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/project.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/raw.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/robotics.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/search_config.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/sequences.py +0 -0
- /cognite_toolkit/_cdf_tk/client/{data_classes → resource_classes}/legacy/streamlit_.py +0 -0
- {cognite_toolkit-0.7.39.dist-info → cognite_toolkit-0.7.51.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
6
|
+
BaseModelObject,
|
|
7
|
+
ResponseResource,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from ._auth import (
|
|
11
|
+
BasicAuthenticationRequest,
|
|
12
|
+
BasicAuthenticationResponse,
|
|
13
|
+
ClientCredentialAuthenticationRequest,
|
|
14
|
+
ClientCredentialAuthenticationResponse,
|
|
15
|
+
ScramShaAuthenticationRequest,
|
|
16
|
+
ScramShaAuthenticationResponse,
|
|
17
|
+
)
|
|
18
|
+
from ._base import SourceRequestDefinition, SourceResponseDefinition
|
|
19
|
+
from ._certificate import AuthCertificateRequest, CACertificateRequest, CertificateResponse
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class KafkaBroker(BaseModelObject):
|
|
23
|
+
host: str
|
|
24
|
+
port: int
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class KafkaSource(BaseModelObject):
|
|
28
|
+
type: Literal["kafka"] = "kafka"
|
|
29
|
+
bootstrap_brokers: list[KafkaBroker]
|
|
30
|
+
use_tls: bool | None = None
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class KafkaSourceRequest(KafkaSource, SourceRequestDefinition):
|
|
34
|
+
authentication: (
|
|
35
|
+
BasicAuthenticationRequest | ClientCredentialAuthenticationRequest | ScramShaAuthenticationRequest | None
|
|
36
|
+
) = Field(None, discriminator="type")
|
|
37
|
+
ca_certificate: CACertificateRequest | None = None
|
|
38
|
+
auth_certificate: AuthCertificateRequest | None = None
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class KafkaSourceResponse(
|
|
42
|
+
SourceResponseDefinition,
|
|
43
|
+
KafkaSource,
|
|
44
|
+
ResponseResource[KafkaSourceRequest],
|
|
45
|
+
):
|
|
46
|
+
authentication: (
|
|
47
|
+
BasicAuthenticationResponse | ClientCredentialAuthenticationResponse | ScramShaAuthenticationResponse | None
|
|
48
|
+
) = Field(None, discriminator="type")
|
|
49
|
+
ca_certificate: CertificateResponse | None = None
|
|
50
|
+
auth_certificate: CertificateResponse | None = None
|
|
51
|
+
|
|
52
|
+
def as_request_resource(self) -> KafkaSourceRequest:
|
|
53
|
+
return KafkaSourceRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
ResponseResource,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
from ._auth import BasicAuthenticationRequest, BasicAuthenticationResponse
|
|
9
|
+
from ._base import SourceRequestDefinition, SourceResponseDefinition
|
|
10
|
+
from ._certificate import AuthCertificateRequest, CACertificateRequest, CertificateResponse
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class MQTTSource(BaseModelObject):
|
|
14
|
+
type: Literal["mqtt5", "mqtt3"]
|
|
15
|
+
host: str
|
|
16
|
+
port: int | None = None
|
|
17
|
+
use_tls: bool | None = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class MQTTSourceRequest(MQTTSource, SourceRequestDefinition):
|
|
21
|
+
authentication: BasicAuthenticationRequest | None = None
|
|
22
|
+
ca_certificate: CACertificateRequest | None = None
|
|
23
|
+
auth_certificate: AuthCertificateRequest | None = None
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class MQTTSourceResponse(
|
|
27
|
+
SourceResponseDefinition,
|
|
28
|
+
MQTTSource,
|
|
29
|
+
ResponseResource[MQTTSourceRequest],
|
|
30
|
+
):
|
|
31
|
+
authentication: BasicAuthenticationResponse | None = None
|
|
32
|
+
ca_certificate: CertificateResponse | None = None
|
|
33
|
+
auth_certificate: CertificateResponse | None = None
|
|
34
|
+
|
|
35
|
+
def as_request_resource(self) -> MQTTSourceRequest:
|
|
36
|
+
return MQTTSourceRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
6
|
+
BaseModelObject,
|
|
7
|
+
ResponseResource,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
from ._auth import (
|
|
11
|
+
BasicAuthenticationRequest,
|
|
12
|
+
BasicAuthenticationResponse,
|
|
13
|
+
ClientCredentialAuthenticationRequest,
|
|
14
|
+
ClientCredentialAuthenticationResponse,
|
|
15
|
+
HTTPBasicAuthenticationRequest,
|
|
16
|
+
HTTPBasicAuthenticationResponse,
|
|
17
|
+
)
|
|
18
|
+
from ._base import SourceRequestDefinition, SourceResponseDefinition
|
|
19
|
+
from ._certificate import AuthCertificateRequest, CACertificateRequest, CertificateResponse
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class RESTSource(BaseModelObject):
|
|
23
|
+
type: Literal["rest"] = "rest"
|
|
24
|
+
host: str
|
|
25
|
+
port: int | None = None
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class RESTSourceRequest(RESTSource, SourceRequestDefinition):
|
|
29
|
+
scheme: Literal["https", "http"] | None = None
|
|
30
|
+
authentication: (
|
|
31
|
+
BasicAuthenticationRequest | HTTPBasicAuthenticationRequest | ClientCredentialAuthenticationRequest | None
|
|
32
|
+
) = Field(None, discriminator="type")
|
|
33
|
+
ca_certificate: CACertificateRequest | None = None
|
|
34
|
+
auth_certificate: AuthCertificateRequest | None = None
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class RESTSourceResponse(
|
|
38
|
+
SourceResponseDefinition,
|
|
39
|
+
RESTSource,
|
|
40
|
+
ResponseResource[RESTSourceRequest],
|
|
41
|
+
):
|
|
42
|
+
authentication: (
|
|
43
|
+
BasicAuthenticationResponse | HTTPBasicAuthenticationResponse | ClientCredentialAuthenticationResponse | None
|
|
44
|
+
) = Field(None, discriminator="type")
|
|
45
|
+
ca_certificate: CertificateResponse | None = None
|
|
46
|
+
auth_certificate: CertificateResponse | None = None
|
|
47
|
+
|
|
48
|
+
def as_request_resource(self) -> RESTSourceRequest:
|
|
49
|
+
return RESTSourceRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
from collections.abc import Sequence
|
|
2
|
+
from typing import Annotated, Literal
|
|
3
|
+
|
|
4
|
+
from pydantic import Field
|
|
5
|
+
|
|
6
|
+
from cognite_toolkit._cdf_tk.client._resource_base import Identifier
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class InternalOrExternalIdDefinition(Identifier):
|
|
10
|
+
type: str
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class InternalId(InternalOrExternalIdDefinition):
|
|
14
|
+
type: Literal["id"] = Field("id", exclude=True)
|
|
15
|
+
id: int
|
|
16
|
+
|
|
17
|
+
@classmethod
|
|
18
|
+
def from_ids(cls, ids: Sequence[int]) -> list["InternalId"]:
|
|
19
|
+
return [cls(id=id_) for id_ in ids]
|
|
20
|
+
|
|
21
|
+
def __str__(self) -> str:
|
|
22
|
+
return f"id={self.id}"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ExternalId(InternalOrExternalIdDefinition):
|
|
26
|
+
type: Literal["externalId"] = Field("externalId", exclude=True)
|
|
27
|
+
external_id: str
|
|
28
|
+
|
|
29
|
+
@classmethod
|
|
30
|
+
def from_external_ids(cls, external_ids: list[str]) -> list["ExternalId"]:
|
|
31
|
+
return [cls(external_id=ext_id) for ext_id in external_ids]
|
|
32
|
+
|
|
33
|
+
def __str__(self) -> str:
|
|
34
|
+
return f"externalId='{self.external_id}'"
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
InternalOrExternalId = Annotated[InternalId | ExternalId, Field(discriminator="type")]
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class NameId(Identifier):
|
|
41
|
+
name: str
|
|
42
|
+
|
|
43
|
+
def __str__(self) -> str:
|
|
44
|
+
return f"name='{self.name}'"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class WorkflowVersionId(Identifier):
|
|
48
|
+
workflow_external_id: str
|
|
49
|
+
version: str
|
|
50
|
+
|
|
51
|
+
def __str__(self) -> str:
|
|
52
|
+
return f"workflowExternalId='{self.workflow_external_id}', version='{self.version}'"
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class DataSetId(Identifier):
|
|
56
|
+
data_set_id: int
|
|
57
|
+
|
|
58
|
+
def __str__(self) -> str:
|
|
59
|
+
return f"dataSetId={self.data_set_id}"
|
|
@@ -4,13 +4,13 @@ from typing import Any, ClassVar, Literal
|
|
|
4
4
|
from pydantic import JsonValue, field_validator
|
|
5
5
|
from pydantic_core.core_schema import ValidationInfo
|
|
6
6
|
|
|
7
|
+
from cognite_toolkit._cdf_tk.client._resource_base import BaseResourceList, ResponseResource
|
|
7
8
|
from cognite_toolkit._cdf_tk.protocols import (
|
|
8
9
|
ResourceRequestListProtocol,
|
|
9
10
|
ResourceResponseListProtocol,
|
|
10
11
|
)
|
|
11
12
|
from cognite_toolkit._cdf_tk.utils.text import sanitize_instance_external_id
|
|
12
13
|
|
|
13
|
-
from .base import BaseResourceList, ResponseResource
|
|
14
14
|
from .instance_api import InstanceRequestResource, ViewReference
|
|
15
15
|
|
|
16
16
|
if sys.version_info >= (3, 11):
|
|
@@ -2,7 +2,7 @@ from typing import Any, ClassVar, Literal, TypeAlias
|
|
|
2
2
|
|
|
3
3
|
from pydantic import ConfigDict, JsonValue, model_serializer
|
|
4
4
|
|
|
5
|
-
from .
|
|
5
|
+
from cognite_toolkit._cdf_tk.client._resource_base import BaseModelObject, Identifier, RequestResource
|
|
6
6
|
|
|
7
7
|
InstanceType: TypeAlias = Literal["node", "edge"]
|
|
8
8
|
|
|
@@ -14,19 +14,38 @@ class TypedInstanceIdentifier(Identifier):
|
|
|
14
14
|
space: str
|
|
15
15
|
external_id: str
|
|
16
16
|
|
|
17
|
+
def __str__(self) -> str:
|
|
18
|
+
return f"Instance({self.instance_type}, {self.space}, {self.external_id})"
|
|
19
|
+
|
|
20
|
+
def dump(self, camel_case: bool = True, include_type: bool = True) -> dict[str, Any]:
|
|
21
|
+
"""Dump the resource to a dictionary.
|
|
22
|
+
|
|
23
|
+
This is the default serialization method for request resources.
|
|
24
|
+
"""
|
|
25
|
+
return self.model_dump(mode="json", by_alias=camel_case, exclude_unset=not include_type)
|
|
26
|
+
|
|
17
27
|
|
|
18
28
|
class TypedNodeIdentifier(TypedInstanceIdentifier):
|
|
19
29
|
instance_type: Literal["node"] = "node"
|
|
20
30
|
|
|
31
|
+
def __str__(self) -> str:
|
|
32
|
+
return f"Node({self.space}, {self.external_id})"
|
|
33
|
+
|
|
21
34
|
|
|
22
35
|
class TypedEdgeIdentifier(TypedInstanceIdentifier):
|
|
23
36
|
instance_type: Literal["edge"] = "edge"
|
|
24
37
|
|
|
38
|
+
def __str__(self) -> str:
|
|
39
|
+
return f"Edge({self.space}, {self.external_id})"
|
|
40
|
+
|
|
25
41
|
|
|
26
42
|
class InstanceIdentifier(Identifier):
|
|
27
43
|
space: str
|
|
28
44
|
external_id: str
|
|
29
45
|
|
|
46
|
+
def __str__(self) -> str:
|
|
47
|
+
return f"Instance({self.space}, {self.external_id})"
|
|
48
|
+
|
|
30
49
|
|
|
31
50
|
class InstanceResult(BaseModelObject):
|
|
32
51
|
instance_type: InstanceType
|
|
@@ -51,6 +70,16 @@ class ViewReference(Identifier):
|
|
|
51
70
|
external_id: str
|
|
52
71
|
version: str
|
|
53
72
|
|
|
73
|
+
def __str__(self) -> str:
|
|
74
|
+
return f"View({self.space}, {self.external_id}, v{self.version})"
|
|
75
|
+
|
|
76
|
+
def dump(self, camel_case: bool = True, include_type: bool = True) -> dict[str, Any]:
|
|
77
|
+
"""Dump the resource to a dictionary.
|
|
78
|
+
|
|
79
|
+
This is the default serialization method for request resources.
|
|
80
|
+
"""
|
|
81
|
+
return self.model_dump(mode="json", by_alias=camel_case, exclude_unset=not include_type)
|
|
82
|
+
|
|
54
83
|
|
|
55
84
|
######################################################
|
|
56
85
|
# The classes below are helper classes for making instances request/responses.
|
|
@@ -160,3 +189,8 @@ class InstanceResponseItem(BaseModelObject):
|
|
|
160
189
|
space=self.space,
|
|
161
190
|
external_id=self.external_id,
|
|
162
191
|
)
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
class NodeReference(BaseModelObject):
|
|
195
|
+
space: str
|
|
196
|
+
external_id: str
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
2
|
+
BaseModelObject,
|
|
3
|
+
RequestResource,
|
|
4
|
+
ResponseResource,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from .identifiers import ExternalId
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Label(BaseModelObject):
|
|
11
|
+
external_id: str
|
|
12
|
+
name: str
|
|
13
|
+
description: str | None = None
|
|
14
|
+
data_set_id: int | None = None
|
|
15
|
+
|
|
16
|
+
def as_id(self) -> ExternalId:
|
|
17
|
+
return ExternalId(external_id=self.external_id)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class LabelRequest(Label, RequestResource): ...
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class LabelResponse(Label, ResponseResource[LabelRequest]):
|
|
24
|
+
created_time: int
|
|
25
|
+
|
|
26
|
+
def as_request_resource(self) -> LabelRequest:
|
|
27
|
+
return LabelRequest.model_validate(self.dump(), extra="ignore")
|
|
File without changes
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import sys
|
|
2
2
|
from abc import ABC
|
|
3
|
+
from collections import defaultdict
|
|
3
4
|
from collections.abc import Sequence
|
|
4
5
|
from datetime import datetime, timezone
|
|
5
6
|
from typing import Any, TypeVar
|
|
@@ -30,7 +31,7 @@ from cognite.client.data_classes.data_modeling.instances import (
|
|
|
30
31
|
TypedNodeApply,
|
|
31
32
|
)
|
|
32
33
|
|
|
33
|
-
from cognite_toolkit._cdf_tk.client.
|
|
34
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.legacy.migration import AssetCentricId
|
|
34
35
|
from cognite_toolkit._cdf_tk.utils.useful_types import JsonVal
|
|
35
36
|
|
|
36
37
|
if sys.version_info >= (3, 11):
|
|
@@ -905,54 +906,86 @@ class IndustrialCanvasApply(CogniteResource):
|
|
|
905
906
|
raise TypeError(f"Unexpected instance type: {type(instance)}")
|
|
906
907
|
return ids
|
|
907
908
|
|
|
908
|
-
def dump(self, keep_existing_version: bool = True) -> dict[str, JsonVal]:
|
|
909
|
+
def dump(self, camel_case: bool = True, keep_existing_version: bool = True) -> dict[str, JsonVal]:
|
|
909
910
|
"""Dump the IndustrialCanvasApply to a dictionary."""
|
|
910
911
|
return {
|
|
911
|
-
"canvas": self.canvas.dump(keep_existing_version=keep_existing_version),
|
|
912
|
+
"canvas": self.canvas.dump(camel_case=camel_case, keep_existing_version=keep_existing_version),
|
|
912
913
|
"annotations": [
|
|
913
|
-
annotation.dump(keep_existing_version=keep_existing_version)
|
|
914
|
+
annotation.dump(camel_case=camel_case, keep_existing_version=keep_existing_version)
|
|
915
|
+
for annotation in self.annotations
|
|
914
916
|
],
|
|
915
917
|
"containerReferences": [
|
|
916
|
-
container_ref.dump(keep_existing_version=keep_existing_version)
|
|
918
|
+
container_ref.dump(camel_case=camel_case, keep_existing_version=keep_existing_version)
|
|
917
919
|
for container_ref in self.container_references
|
|
918
920
|
],
|
|
919
921
|
"fdmInstanceContainerReferences": [
|
|
920
|
-
fdm_instance_container_ref.dump(keep_existing_version=keep_existing_version)
|
|
922
|
+
fdm_instance_container_ref.dump(camel_case=camel_case, keep_existing_version=keep_existing_version)
|
|
921
923
|
for fdm_instance_container_ref in self.fdm_instance_container_references
|
|
922
924
|
],
|
|
923
925
|
"solutionTags": [
|
|
924
|
-
solution_tag.dump(keep_existing_version=keep_existing_version)
|
|
926
|
+
solution_tag.dump(camel_case=camel_case, keep_existing_version=keep_existing_version)
|
|
927
|
+
for solution_tag in self.solution_tags
|
|
925
928
|
],
|
|
926
929
|
}
|
|
927
930
|
|
|
928
931
|
def create_backup(self) -> "IndustrialCanvasApply":
|
|
929
|
-
"""Create a
|
|
932
|
+
"""Create a backup copy of the IndustrialCanvasApply instance with new IDs."""
|
|
930
933
|
new_canvas_id = str(uuid4())
|
|
934
|
+
|
|
931
935
|
new_canvas = CanvasApply._load(self.canvas.dump(keep_existing_version=False))
|
|
932
936
|
new_canvas.external_id = new_canvas_id
|
|
933
937
|
new_canvas.source_canvas_id = self.canvas.external_id
|
|
934
938
|
new_canvas.updated_at = datetime.now(tz=timezone.utc)
|
|
935
939
|
# Solution tags are not duplicated, they are reused
|
|
936
|
-
|
|
940
|
+
canvas_backup = IndustrialCanvasApply(new_canvas, [], [], [], solution_tags=self.solution_tags)
|
|
937
941
|
items: list[ContainerReferenceApply] | list[CanvasAnnotationApply] | list[FdmInstanceContainerReferenceApply]
|
|
938
942
|
item_cls: type[CanvasAnnotationApply] | type[ContainerReferenceApply] | type[FdmInstanceContainerReferenceApply]
|
|
939
943
|
new_item_list: list[NodeApply]
|
|
944
|
+
generator: dict[str, str] = defaultdict(lambda: str(uuid4()))
|
|
940
945
|
for items, item_cls, new_item_list in [ # type: ignore[assignment]
|
|
941
|
-
(self.annotations, CanvasAnnotationApply,
|
|
942
|
-
(self.container_references, ContainerReferenceApply,
|
|
946
|
+
(self.annotations, CanvasAnnotationApply, canvas_backup.annotations),
|
|
947
|
+
(self.container_references, ContainerReferenceApply, canvas_backup.container_references),
|
|
943
948
|
(
|
|
944
949
|
self.fdm_instance_container_references,
|
|
945
950
|
FdmInstanceContainerReferenceApply,
|
|
946
|
-
|
|
951
|
+
canvas_backup.fdm_instance_container_references,
|
|
947
952
|
),
|
|
948
953
|
]:
|
|
949
954
|
for item in items:
|
|
950
955
|
# Serialize the item to create a new instance
|
|
951
956
|
new_item = item_cls._load(item.dump(keep_existing_version=False))
|
|
952
|
-
new_item.id_ =
|
|
953
|
-
new_item.external_id = f"{new_canvas_id}_{new_item.
|
|
957
|
+
new_item.id_ = generator[new_item.id_]
|
|
958
|
+
new_item.external_id = f"{new_canvas_id}_{new_item.id_}"
|
|
954
959
|
new_item_list.append(new_item)
|
|
955
|
-
|
|
960
|
+
|
|
961
|
+
return canvas_backup.replace_ids(generator)
|
|
962
|
+
|
|
963
|
+
def replace_ids(self, id_mapping_old_by_new: dict[str, str]) -> "IndustrialCanvasApply":
|
|
964
|
+
"""Replace IDs in the IndustrialCanvasApply instance based on the provided ID mapping.
|
|
965
|
+
|
|
966
|
+
Args:
|
|
967
|
+
id_mapping_old_by_new: A dictionary mapping old IDs to new IDs.
|
|
968
|
+
Returns:
|
|
969
|
+
A new IndustrialCanvasApply instance with IDs replaced according to the mapping.
|
|
970
|
+
"""
|
|
971
|
+
# There can be references to the old IDs in properties, for example, in annotations
|
|
972
|
+
# the properties field there can be fromId and toId set.
|
|
973
|
+
# We don't know all the places the Canvas application will have undocumented references,
|
|
974
|
+
# so we do a recursive search and replace based on the id mapping we have created.
|
|
975
|
+
dumped_data = self.dump(camel_case=True)
|
|
976
|
+
|
|
977
|
+
def _replace_ids_recursively(data: Any, id_map: dict[str, str]) -> Any:
|
|
978
|
+
if isinstance(data, dict):
|
|
979
|
+
return {key: _replace_ids_recursively(value, id_map) for key, value in data.items()}
|
|
980
|
+
if isinstance(data, list):
|
|
981
|
+
return [_replace_ids_recursively(item, id_map) for item in data]
|
|
982
|
+
if isinstance(data, str) and data in id_map:
|
|
983
|
+
return id_map[data]
|
|
984
|
+
return data
|
|
985
|
+
|
|
986
|
+
updated_data = _replace_ids_recursively(dumped_data, id_mapping_old_by_new)
|
|
987
|
+
|
|
988
|
+
return IndustrialCanvasApply._load(updated_data)
|
|
956
989
|
|
|
957
990
|
@classmethod
|
|
958
991
|
def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = None) -> Self:
|
|
@@ -9,7 +9,7 @@ from cognite.client.data_classes._base import (
|
|
|
9
9
|
WriteableCogniteResourceList,
|
|
10
10
|
)
|
|
11
11
|
|
|
12
|
-
from cognite_toolkit._cdf_tk.client.
|
|
12
|
+
from cognite_toolkit._cdf_tk.client.resource_classes.charts_data import ChartData
|
|
13
13
|
|
|
14
14
|
if sys.version_info >= (3, 11):
|
|
15
15
|
from typing import Self
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from cognite_toolkit._cdf_tk.client._resource_base import BaseModelObject, RequestResource, ResponseResource
|
|
6
|
+
|
|
7
|
+
from .data_modeling import DataModelReference
|
|
8
|
+
from .identifiers import ExternalId, InternalId
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class LocationFilterScene(BaseModelObject):
|
|
12
|
+
"""Scene configuration for a location filter."""
|
|
13
|
+
|
|
14
|
+
external_id: str
|
|
15
|
+
space: str
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class LocationFilterView(BaseModelObject):
|
|
19
|
+
"""View identifier with entity type for location filter."""
|
|
20
|
+
|
|
21
|
+
external_id: str
|
|
22
|
+
space: str
|
|
23
|
+
version: str
|
|
24
|
+
represents_entity: Literal["MAINTENANCE_ORDER", "OPERATION", "NOTIFICATION", "ASSET"] | None = None
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class AssetCentricSubFilter(BaseModelObject):
|
|
28
|
+
"""Sub-filter for asset-centric resource types."""
|
|
29
|
+
|
|
30
|
+
data_set_ids: list[int] | None = None
|
|
31
|
+
asset_subtree_ids: list[ExternalId | InternalId] | None = None
|
|
32
|
+
external_id_prefix: str | None = None
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class AssetCentricFilter(BaseModelObject):
|
|
36
|
+
"""Filter definition for asset-centric resource types."""
|
|
37
|
+
|
|
38
|
+
assets: AssetCentricSubFilter | None = None
|
|
39
|
+
events: AssetCentricSubFilter | None = None
|
|
40
|
+
files: AssetCentricSubFilter | None = None
|
|
41
|
+
timeseries: AssetCentricSubFilter | None = None
|
|
42
|
+
sequences: AssetCentricSubFilter | None = None
|
|
43
|
+
data_set_ids: list[int] | None = None
|
|
44
|
+
asset_subtree_ids: list[ExternalId | InternalId] | None = None
|
|
45
|
+
external_id_prefix: str | None = None
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class LocationFilter(BaseModelObject):
|
|
49
|
+
"""Base class for location filter with common fields."""
|
|
50
|
+
|
|
51
|
+
external_id: str
|
|
52
|
+
name: str
|
|
53
|
+
description: str | None = None
|
|
54
|
+
parent_id: int | None = None
|
|
55
|
+
data_models: list[DataModelReference] | None = None
|
|
56
|
+
instance_spaces: list[str] | None = None
|
|
57
|
+
scene: LocationFilterScene | None = None
|
|
58
|
+
asset_centric: AssetCentricFilter | None = None
|
|
59
|
+
views: list[LocationFilterView] | None = None
|
|
60
|
+
data_modeling_type: Literal["HYBRID", "DATA_MODELING_ONLY"] | None = None
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class LocationFilterRequest(LocationFilter, RequestResource):
|
|
64
|
+
"""Request resource for creating/updating location filters."""
|
|
65
|
+
|
|
66
|
+
# This is not part of the request payload, but we need it to identify existing resources for updates.
|
|
67
|
+
id: int | None = Field(default=None, exclude=True)
|
|
68
|
+
|
|
69
|
+
def as_id(self) -> InternalId:
|
|
70
|
+
if self.id is None:
|
|
71
|
+
raise ValueError("Cannot get ID for LocationFilterRequest without 'id' set.")
|
|
72
|
+
return InternalId(id=self.id)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
class LocationFilterResponse(LocationFilter, ResponseResource[LocationFilterRequest]):
|
|
76
|
+
"""Response resource for location filters."""
|
|
77
|
+
|
|
78
|
+
id: int
|
|
79
|
+
created_time: int
|
|
80
|
+
updated_time: int
|
|
81
|
+
locations: list["LocationFilterResponse"] | None = None
|
|
82
|
+
|
|
83
|
+
def as_request_resource(self) -> LocationFilterRequest:
|
|
84
|
+
return LocationFilterRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
6
|
+
Identifier,
|
|
7
|
+
RequestResource,
|
|
8
|
+
ResponseResource,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import Self
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import Self
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class RAWDatabase(RequestResource, Identifier, ResponseResource["RAWDatabase"]):
|
|
18
|
+
name: str
|
|
19
|
+
|
|
20
|
+
def as_id(self) -> Self:
|
|
21
|
+
return self
|
|
22
|
+
|
|
23
|
+
def __str__(self) -> str:
|
|
24
|
+
return f"name='{self.name}'"
|
|
25
|
+
|
|
26
|
+
def as_request_resource(self) -> "RAWDatabase":
|
|
27
|
+
return type(self).model_validate(self.dump(), extra="ignore")
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class RAWTable(RequestResource, Identifier, ResponseResource["RAWTable"]):
|
|
31
|
+
# This is a query parameter, so we exclude it from serialization.
|
|
32
|
+
# Default to empty string to allow parsing from API responses (which don't include db_name).
|
|
33
|
+
db_name: str = Field(default="", exclude=True)
|
|
34
|
+
name: str
|
|
35
|
+
|
|
36
|
+
def as_id(self) -> Self:
|
|
37
|
+
return self
|
|
38
|
+
|
|
39
|
+
def __str__(self) -> str:
|
|
40
|
+
return f"dbName='{self.db_name}', tableName='{self.name}'"
|
|
41
|
+
|
|
42
|
+
def as_request_resource(self) -> "RAWTable":
|
|
43
|
+
dumped = {**self.dump(), "dbName": self.db_name}
|
|
44
|
+
return type(self).model_validate(dumped, extra="ignore")
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
from typing import ClassVar, Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
ResponseResource,
|
|
6
|
+
UpdatableRequestResource,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from .identifiers import ExternalId
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class LabelRef(BaseModelObject):
|
|
13
|
+
"""Reference to a label."""
|
|
14
|
+
|
|
15
|
+
external_id: str
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class Relationship(BaseModelObject):
|
|
19
|
+
"""Base class for relationship with common fields."""
|
|
20
|
+
|
|
21
|
+
external_id: str
|
|
22
|
+
source_external_id: str
|
|
23
|
+
source_type: Literal["asset", "timeSeries", "file", "event", "sequence"]
|
|
24
|
+
target_external_id: str
|
|
25
|
+
target_type: Literal["asset", "timeSeries", "file", "event", "sequence"]
|
|
26
|
+
start_time: int | None = None
|
|
27
|
+
end_time: int | None = None
|
|
28
|
+
confidence: float | None = None
|
|
29
|
+
data_set_id: int | None = None
|
|
30
|
+
labels: list[LabelRef] | None = None
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class RelationshipRequest(Relationship, UpdatableRequestResource):
|
|
34
|
+
"""Request resource for creating/updating relationships."""
|
|
35
|
+
|
|
36
|
+
container_fields: ClassVar[frozenset[str]] = frozenset({"labels"})
|
|
37
|
+
|
|
38
|
+
def as_id(self) -> ExternalId:
|
|
39
|
+
return ExternalId(external_id=self.external_id)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
class RelationshipResponse(Relationship, ResponseResource[RelationshipRequest]):
|
|
43
|
+
"""Response resource for relationships."""
|
|
44
|
+
|
|
45
|
+
created_time: int
|
|
46
|
+
last_updated_time: int
|
|
47
|
+
|
|
48
|
+
def as_request_resource(self) -> RelationshipRequest:
|
|
49
|
+
return RelationshipRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
from typing import ClassVar, Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client._resource_base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
RequestResource,
|
|
6
|
+
ResponseResource,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from .data_modeling import ViewReference
|
|
10
|
+
from .identifiers import ExternalId
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class ResourceViewMapping(BaseModelObject):
|
|
14
|
+
space: ClassVar[str] = "cognite_migration"
|
|
15
|
+
view_ref: ClassVar[ViewReference] = ViewReference(
|
|
16
|
+
space="cognite_migration", external_id="ResourceViewMapping", version="v1"
|
|
17
|
+
)
|
|
18
|
+
instance_type: Literal["node"] = "node"
|
|
19
|
+
external_id: str
|
|
20
|
+
resource_type: str
|
|
21
|
+
view_id: ViewReference
|
|
22
|
+
property_mapping: dict[str, str]
|
|
23
|
+
|
|
24
|
+
def as_id(self) -> ExternalId:
|
|
25
|
+
return ExternalId(external_id=self.external_id)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ResourceViewMappingRequest(ResourceViewMapping, RequestResource):
|
|
29
|
+
existing_version: int | None = None
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class ResourceViewMappingResponse(ResourceViewMapping, ResponseResource[ResourceViewMappingRequest]):
|
|
33
|
+
version: int
|
|
34
|
+
created_time: int
|
|
35
|
+
last_updated_time: int
|
|
36
|
+
|
|
37
|
+
def as_request_resource(self) -> ResourceViewMappingRequest:
|
|
38
|
+
return ResourceViewMappingRequest.model_validate(self.dump(), extra="ignore")
|