cognite-toolkit 0.7.43__py3-none-any.whl → 0.7.44__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/client/_toolkit_client.py +6 -0
- cognite_toolkit/_cdf_tk/client/api/filemetadata.py +145 -0
- cognite_toolkit/_cdf_tk/client/api/raw.py +174 -0
- cognite_toolkit/_cdf_tk/client/api/simulator_models.py +118 -0
- cognite_toolkit/_cdf_tk/client/api/simulators.py +8 -0
- cognite_toolkit/_cdf_tk/client/cdf_client/__init__.py +2 -1
- cognite_toolkit/_cdf_tk/client/cdf_client/api.py +40 -6
- cognite_toolkit/_cdf_tk/client/data_classes/annotation.py +79 -0
- cognite_toolkit/_cdf_tk/client/data_classes/base.py +13 -3
- cognite_toolkit/_cdf_tk/client/data_classes/data_modeling/__init__.py +16 -0
- cognite_toolkit/_cdf_tk/client/data_classes/data_modeling/_instance.py +143 -0
- cognite_toolkit/_cdf_tk/client/data_classes/data_modeling/_references.py +8 -0
- cognite_toolkit/_cdf_tk/client/data_classes/dataset.py +35 -0
- cognite_toolkit/_cdf_tk/client/data_classes/extraction_pipeline.py +59 -0
- cognite_toolkit/_cdf_tk/client/data_classes/filemetadata.py +7 -1
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_destination.py +34 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_job.py +134 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_mapping.py +72 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/__init__.py +63 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_auth.py +63 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_base.py +26 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_certificate.py +20 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_eventhub.py +31 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_kafka.py +53 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_mqtt.py +36 -0
- cognite_toolkit/_cdf_tk/client/data_classes/hosted_extractor_source/_rest.py +49 -0
- cognite_toolkit/_cdf_tk/client/data_classes/identifiers.py +8 -0
- cognite_toolkit/_cdf_tk/client/data_classes/label.py +27 -0
- cognite_toolkit/_cdf_tk/client/data_classes/raw.py +3 -2
- cognite_toolkit/_cdf_tk/client/data_classes/securitycategory.py +24 -0
- cognite_toolkit/_cdf_tk/client/data_classes/sequence.py +45 -0
- cognite_toolkit/_cdf_tk/client/data_classes/transformation.py +140 -0
- cognite_toolkit/_cdf_tk/client/data_classes/workflow.py +27 -0
- cognite_toolkit/_cdf_tk/client/data_classes/workflow_trigger.py +63 -0
- cognite_toolkit/_cdf_tk/client/data_classes/workflow_version.py +155 -0
- cognite_toolkit/_cdf_tk/client/testing.py +5 -0
- cognite_toolkit/_cdf_tk/commands/_migrate/conversion.py +4 -3
- cognite_toolkit/_cdf_tk/cruds/_data_cruds.py +7 -3
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/file.py +56 -59
- cognite_toolkit/_cdf_tk/cruds/_resource_cruds/relationship.py +1 -1
- cognite_toolkit/_cdf_tk/storageio/_asset_centric.py +34 -29
- cognite_toolkit/_cdf_tk/storageio/_file_content.py +22 -19
- 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.43.dist-info → cognite_toolkit-0.7.44.dist-info}/METADATA +11 -1
- {cognite_toolkit-0.7.43.dist-info → cognite_toolkit-0.7.44.dist-info}/RECORD +50 -24
- {cognite_toolkit-0.7.43.dist-info → cognite_toolkit-0.7.44.dist-info}/WHEEL +1 -1
- {cognite_toolkit-0.7.43.dist-info → cognite_toolkit-0.7.44.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from typing import Annotated
|
|
2
|
+
|
|
3
|
+
from pydantic import Field, TypeAdapter
|
|
4
|
+
|
|
5
|
+
from ._auth import (
|
|
6
|
+
BasicAuthenticationRequest,
|
|
7
|
+
BasicAuthenticationResponse,
|
|
8
|
+
ClientCredentialAuthenticationRequest,
|
|
9
|
+
ClientCredentialAuthenticationResponse,
|
|
10
|
+
HTTPBasicAuthenticationRequest,
|
|
11
|
+
HTTPBasicAuthenticationResponse,
|
|
12
|
+
ScramShaAuthenticationRequest,
|
|
13
|
+
ScramShaAuthenticationResponse,
|
|
14
|
+
)
|
|
15
|
+
from ._certificate import AuthCertificateRequest, CACertificateRequest, CertificateResponse
|
|
16
|
+
from ._eventhub import EventHubSourceRequest, EventHubSourceResponse
|
|
17
|
+
from ._kafka import KafkaBroker, KafkaSourceRequest, KafkaSourceResponse
|
|
18
|
+
from ._mqtt import MQTTSourceRequest, MQTTSourceResponse
|
|
19
|
+
from ._rest import RESTSourceRequest, RESTSourceResponse
|
|
20
|
+
|
|
21
|
+
HostedExtractorSourceRequestUnion = Annotated[
|
|
22
|
+
KafkaSourceRequest | EventHubSourceRequest | MQTTSourceRequest | RESTSourceRequest,
|
|
23
|
+
Field(discriminator="type"),
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
HostedExtractorSourceRequest: TypeAdapter[HostedExtractorSourceRequestUnion] = TypeAdapter(
|
|
27
|
+
HostedExtractorSourceRequestUnion
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
HostedExtractorSourceResponseUnion = Annotated[
|
|
31
|
+
KafkaSourceResponse | EventHubSourceResponse | MQTTSourceResponse | RESTSourceResponse,
|
|
32
|
+
Field(discriminator="type"),
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
HostedExtractorSourceResponse: TypeAdapter[HostedExtractorSourceResponseUnion] = TypeAdapter(
|
|
36
|
+
HostedExtractorSourceResponseUnion
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
__all__ = [
|
|
41
|
+
"AuthCertificateRequest",
|
|
42
|
+
"BasicAuthenticationRequest",
|
|
43
|
+
"BasicAuthenticationResponse",
|
|
44
|
+
"CACertificateRequest",
|
|
45
|
+
"CertificateResponse",
|
|
46
|
+
"ClientCredentialAuthenticationRequest",
|
|
47
|
+
"ClientCredentialAuthenticationResponse",
|
|
48
|
+
"EventHubSourceRequest",
|
|
49
|
+
"EventHubSourceResponse",
|
|
50
|
+
"HTTPBasicAuthenticationRequest",
|
|
51
|
+
"HTTPBasicAuthenticationResponse",
|
|
52
|
+
"HostedExtractorSourceRequest",
|
|
53
|
+
"HostedExtractorSourceResponse",
|
|
54
|
+
"KafkaBroker",
|
|
55
|
+
"KafkaSourceRequest",
|
|
56
|
+
"KafkaSourceResponse",
|
|
57
|
+
"MQTTSourceRequest",
|
|
58
|
+
"MQTTSourceResponse",
|
|
59
|
+
"RESTSourceRequest",
|
|
60
|
+
"RESTSourceResponse",
|
|
61
|
+
"ScramShaAuthenticationRequest",
|
|
62
|
+
"ScramShaAuthenticationResponse",
|
|
63
|
+
]
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class AuthenticationRequestDefinition(BaseModelObject):
|
|
9
|
+
type: str
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class AuthenticationResponseDefinition(BaseModelObject):
|
|
13
|
+
type: str
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class BasicAuthentication(BaseModelObject):
|
|
17
|
+
type: Literal["basic"] = "basic"
|
|
18
|
+
username: str
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class BasicAuthenticationRequest(BasicAuthentication, AuthenticationRequestDefinition):
|
|
22
|
+
password: str | None = None
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class BasicAuthenticationResponse(BasicAuthentication, AuthenticationResponseDefinition): ...
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class ClientCredentialAuthentication(BaseModelObject):
|
|
29
|
+
type: Literal["clientCredential"] = "clientCredential"
|
|
30
|
+
client_id: str
|
|
31
|
+
token_url: str
|
|
32
|
+
scopes: str
|
|
33
|
+
default_expires_in: str | None = None
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class ClientCredentialAuthenticationRequest(ClientCredentialAuthentication, AuthenticationRequestDefinition):
|
|
37
|
+
client_secret: str
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ClientCredentialAuthenticationResponse(ClientCredentialAuthentication, AuthenticationResponseDefinition): ...
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
class ScramShaAuthentication(BaseModelObject):
|
|
44
|
+
type: Literal["scramSha256", "scramSha512"]
|
|
45
|
+
username: str
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ScramShaAuthenticationRequest(ScramShaAuthentication, AuthenticationRequestDefinition):
|
|
49
|
+
password: str
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ScramShaAuthenticationResponse(ScramShaAuthentication, AuthenticationResponseDefinition): ...
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class HTTPBasicAuthenticationRequest(AuthenticationRequestDefinition):
|
|
56
|
+
type: Literal["header", "query"]
|
|
57
|
+
key: str
|
|
58
|
+
value: str
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class HTTPBasicAuthenticationResponse(AuthenticationResponseDefinition):
|
|
62
|
+
type: Literal["header", "query"]
|
|
63
|
+
key: str
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from typing import Any, Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
RequestUpdateable,
|
|
6
|
+
)
|
|
7
|
+
from cognite_toolkit._cdf_tk.client.data_classes.identifiers import ExternalId
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SourceRequestDefinition(RequestUpdateable):
|
|
11
|
+
type: str
|
|
12
|
+
external_id: str
|
|
13
|
+
|
|
14
|
+
def as_id(self) -> ExternalId:
|
|
15
|
+
return ExternalId(external_id=self.external_id)
|
|
16
|
+
|
|
17
|
+
def as_update(self, mode: Literal["patch", "replace"]) -> dict[str, Any]:
|
|
18
|
+
output = super().as_update(mode)
|
|
19
|
+
output["type"] = self.type
|
|
20
|
+
return output
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class SourceResponseDefinition(BaseModelObject):
|
|
24
|
+
external_id: str
|
|
25
|
+
created_time: int
|
|
26
|
+
last_updated_time: int
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
2
|
+
BaseModelObject,
|
|
3
|
+
)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class CACertificateRequest(BaseModelObject):
|
|
7
|
+
type: str
|
|
8
|
+
certificate: str
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class AuthCertificateRequest(BaseModelObject):
|
|
12
|
+
key: str
|
|
13
|
+
key_password: str | None = None
|
|
14
|
+
type: str
|
|
15
|
+
certificate: str
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CertificateResponse(BaseModelObject):
|
|
19
|
+
thumbprint: str
|
|
20
|
+
expires_at: int
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
ResponseResource,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
from ._auth import BasicAuthenticationRequest, BasicAuthenticationResponse
|
|
9
|
+
from ._base import SourceRequestDefinition, SourceResponseDefinition
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class EventHubSource(BaseModelObject):
|
|
13
|
+
type: Literal["eventHub"] = "eventHub"
|
|
14
|
+
host: str
|
|
15
|
+
event_hub_name: str
|
|
16
|
+
consumer_group: str | None = None
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class EventHubSourceRequest(EventHubSource, SourceRequestDefinition):
|
|
20
|
+
authentication: BasicAuthenticationRequest | None = None
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class EventHubSourceResponse(
|
|
24
|
+
SourceResponseDefinition,
|
|
25
|
+
EventHubSource,
|
|
26
|
+
ResponseResource[EventHubSourceRequest],
|
|
27
|
+
):
|
|
28
|
+
authentication: BasicAuthenticationResponse | None = None
|
|
29
|
+
|
|
30
|
+
def as_request_resource(self) -> EventHubSourceRequest:
|
|
31
|
+
return EventHubSourceRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from pydantic import Field
|
|
4
|
+
|
|
5
|
+
from cognite_toolkit._cdf_tk.client.data_classes.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.data_classes.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.data_classes.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")
|
|
@@ -42,3 +42,11 @@ class NameId(Identifier):
|
|
|
42
42
|
|
|
43
43
|
def __str__(self) -> str:
|
|
44
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}'"
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from cognite_toolkit._cdf_tk.client.data_classes.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")
|
|
@@ -28,8 +28,9 @@ class RAWDatabase(RequestResource, Identifier, ResponseResource["RAWDatabase"]):
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
class RAWTable(RequestResource, Identifier, ResponseResource["RAWTable"]):
|
|
31
|
-
# This is a query parameter, so we exclude it from serialization
|
|
32
|
-
|
|
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)
|
|
33
34
|
name: str
|
|
34
35
|
|
|
35
36
|
def as_id(self) -> Self:
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
2
|
+
BaseModelObject,
|
|
3
|
+
RequestResource,
|
|
4
|
+
ResponseResource,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from .identifiers import NameId
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class SecurityCategory(BaseModelObject):
|
|
11
|
+
name: str
|
|
12
|
+
|
|
13
|
+
def as_id(self) -> NameId:
|
|
14
|
+
return NameId(name=self.name)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class SecurityCategoryRequest(SecurityCategory, RequestResource): ...
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SecurityCategoryResponse(SecurityCategory, ResponseResource[SecurityCategoryRequest]):
|
|
21
|
+
id: int
|
|
22
|
+
|
|
23
|
+
def as_request_resource(self) -> SecurityCategoryRequest:
|
|
24
|
+
return SecurityCategoryRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
from typing import ClassVar, Literal
|
|
2
|
+
|
|
3
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
4
|
+
BaseModelObject,
|
|
5
|
+
RequestUpdateable,
|
|
6
|
+
ResponseResource,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
from .identifiers import ExternalId
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class SequenceColumn(BaseModelObject):
|
|
13
|
+
external_id: str
|
|
14
|
+
name: str | None = None
|
|
15
|
+
description: str | None = None
|
|
16
|
+
metadata: dict[str, str] | None = None
|
|
17
|
+
value_type: Literal["STRING", "DOUBLE", "LONG"] | None = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class Sequence(BaseModelObject):
|
|
21
|
+
external_id: str | None = None
|
|
22
|
+
name: str | None = None
|
|
23
|
+
description: str | None = None
|
|
24
|
+
asset_id: int | None = None
|
|
25
|
+
data_set_id: int | None = None
|
|
26
|
+
metadata: dict[str, str] | None = None
|
|
27
|
+
columns: list[SequenceColumn]
|
|
28
|
+
|
|
29
|
+
def as_id(self) -> ExternalId:
|
|
30
|
+
if self.external_id is None:
|
|
31
|
+
raise ValueError("Cannot convert Sequence to ExternalId when external_id is None")
|
|
32
|
+
return ExternalId(external_id=self.external_id)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class SequenceRequest(Sequence, RequestUpdateable):
|
|
36
|
+
container_fields: ClassVar[frozenset[str]] = frozenset({"metadata", "columns"})
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class SequenceResponse(Sequence, ResponseResource[SequenceRequest]):
|
|
40
|
+
id: int
|
|
41
|
+
created_time: int
|
|
42
|
+
last_updated_time: int
|
|
43
|
+
|
|
44
|
+
def as_request_resource(self) -> SequenceRequest:
|
|
45
|
+
return SequenceRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
from typing import Annotated, ClassVar, Literal
|
|
2
|
+
|
|
3
|
+
from pydantic import Field, JsonValue
|
|
4
|
+
|
|
5
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
6
|
+
BaseModelObject,
|
|
7
|
+
RequestUpdateable,
|
|
8
|
+
ResponseResource,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
from .identifiers import ExternalId
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class NonceCredentials(BaseModelObject):
|
|
15
|
+
nonce: str
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class DestinationDefinition(BaseModelObject):
|
|
19
|
+
type: str
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class DataModelInfo(BaseModelObject):
|
|
23
|
+
space: str
|
|
24
|
+
external_id: str
|
|
25
|
+
version: str
|
|
26
|
+
destination_type: str
|
|
27
|
+
destination_relationship_from_type: str | None = None
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class ViewInfo(BaseModelObject):
|
|
31
|
+
space: str
|
|
32
|
+
external_id: str
|
|
33
|
+
version: str
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class EdgeType(BaseModelObject):
|
|
37
|
+
space: str
|
|
38
|
+
external_id: str
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class AssetCentricDataSource(DestinationDefinition):
|
|
42
|
+
type: Literal[
|
|
43
|
+
"assets",
|
|
44
|
+
"events",
|
|
45
|
+
"asset_hierarchy",
|
|
46
|
+
"datapoints",
|
|
47
|
+
"string_datapoints",
|
|
48
|
+
"timeseries",
|
|
49
|
+
"sequences",
|
|
50
|
+
"files",
|
|
51
|
+
"labels",
|
|
52
|
+
"relationships",
|
|
53
|
+
"data_sets",
|
|
54
|
+
]
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class DataModelSource(DestinationDefinition):
|
|
58
|
+
type: Literal["instances"] = "instances"
|
|
59
|
+
data_model: DataModelInfo
|
|
60
|
+
instance_space: str | None = None
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
class ViewDataSource(DestinationDefinition):
|
|
64
|
+
type: Literal["nodes", "edges"]
|
|
65
|
+
view: ViewInfo
|
|
66
|
+
edge_type: EdgeType | None = None
|
|
67
|
+
instance_space: str | None = None
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
class RawDataSource(DestinationDefinition):
|
|
71
|
+
type: Literal["raw_tables"] = "raw_tables"
|
|
72
|
+
database: str
|
|
73
|
+
table: str
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
class SequenceRowDataSource(DestinationDefinition):
|
|
77
|
+
type: Literal["sequence_rows"] = "sequence_rows"
|
|
78
|
+
external_id: str
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
Destination = Annotated[
|
|
82
|
+
AssetCentricDataSource | DataModelSource | ViewDataSource | RawDataSource | SequenceRowDataSource,
|
|
83
|
+
Field(discriminator="type"),
|
|
84
|
+
]
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class BlockedInfo(BaseModelObject):
|
|
88
|
+
reason: str
|
|
89
|
+
created_time: int
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class SessionInfo(BaseModelObject):
|
|
93
|
+
client_id: str
|
|
94
|
+
session_id: str
|
|
95
|
+
project_name: str
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
class Transformation(BaseModelObject):
|
|
99
|
+
external_id: str
|
|
100
|
+
name: str
|
|
101
|
+
ignore_null_fields: bool
|
|
102
|
+
data_set_id: int | None = None
|
|
103
|
+
tags: list[str] | None = None
|
|
104
|
+
|
|
105
|
+
def as_id(self) -> ExternalId:
|
|
106
|
+
return ExternalId(external_id=self.external_id)
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class TransformationRequest(Transformation, RequestUpdateable):
|
|
110
|
+
container_fields: ClassVar[frozenset[str]] = frozenset({"tags"})
|
|
111
|
+
non_nullable_fields: ClassVar[frozenset[str]] = frozenset({"is_public", "query", "destination"})
|
|
112
|
+
query: str | None = None
|
|
113
|
+
conflict_mode: str | None = None
|
|
114
|
+
destination: Destination | None = None
|
|
115
|
+
source_nonce: NonceCredentials | None = None
|
|
116
|
+
destination_nonce: NonceCredentials | None = None
|
|
117
|
+
is_public: bool | None = None
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
class TransformationResponse(Transformation, ResponseResource[TransformationRequest]):
|
|
121
|
+
id: int
|
|
122
|
+
created_time: int
|
|
123
|
+
last_updated_time: int
|
|
124
|
+
query: str
|
|
125
|
+
is_public: bool
|
|
126
|
+
conflict_mode: str
|
|
127
|
+
destination: Destination
|
|
128
|
+
blocked: BlockedInfo | None = None
|
|
129
|
+
owner: str
|
|
130
|
+
owner_is_current_user: bool
|
|
131
|
+
has_source_oidc_credentials: bool
|
|
132
|
+
has_destination_oidc_credentials: bool
|
|
133
|
+
source_session: SessionInfo | None = None
|
|
134
|
+
destination_session: SessionInfo | None = None
|
|
135
|
+
last_finished_job: dict[str, JsonValue] | None = None
|
|
136
|
+
running_job: dict[str, JsonValue] | None = None
|
|
137
|
+
schedule: dict[str, JsonValue] | None = None
|
|
138
|
+
|
|
139
|
+
def as_request_resource(self) -> TransformationRequest:
|
|
140
|
+
return TransformationRequest.model_validate(self.dump(), extra="ignore")
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from cognite_toolkit._cdf_tk.client.data_classes.base import (
|
|
2
|
+
BaseModelObject,
|
|
3
|
+
RequestResource,
|
|
4
|
+
ResponseResource,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from .identifiers import ExternalId
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class Workflow(BaseModelObject):
|
|
11
|
+
external_id: str
|
|
12
|
+
description: str | None = None
|
|
13
|
+
data_set_id: int | None = None
|
|
14
|
+
|
|
15
|
+
def as_id(self) -> ExternalId:
|
|
16
|
+
return ExternalId(external_id=self.external_id)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class WorkflowRequest(Workflow, RequestResource): ...
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class WorkflowResponse(Workflow, ResponseResource[WorkflowRequest]):
|
|
23
|
+
created_time: int
|
|
24
|
+
last_updated_time: int
|
|
25
|
+
|
|
26
|
+
def as_request_resource(self) -> WorkflowRequest:
|
|
27
|
+
return WorkflowRequest.model_validate(self.dump(), extra="ignore")
|