Skip to content

Commit 26b5cbc

Browse files
committed
refactor; Setup API shell
1 parent 48bc12f commit 26b5cbc

File tree

5 files changed

+23
-4
lines changed

5 files changed

+23
-4
lines changed

cognite/client/_api/iam.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from typing_extensions import TypeAlias
99

10+
from cognite.client._api.projects import ProjectsAPI
1011
from cognite.client._api.user_profiles import UserProfilesAPI
1112
from cognite.client._api_client import APIClient
1213
from cognite.client._constants import DEFAULT_LIMIT_READ
@@ -89,6 +90,7 @@ def _convert_capability_to_tuples(capabilities: ComparableCapability, project: s
8990
class IAMAPI(APIClient):
9091
def __init__(self, config: ClientConfig, api_version: str | None, cognite_client: CogniteClient) -> None:
9192
super().__init__(config, api_version, cognite_client)
93+
self.projects = ProjectsAPI(config, api_version, cognite_client)
9294
self.groups = GroupsAPI(config, api_version, cognite_client)
9395
self.security_categories = SecurityCategoriesAPI(config, api_version, cognite_client)
9496
self.sessions = SessionsAPI(config, api_version, cognite_client)

cognite/client/_api/projects.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
from __future__ import annotations
22

33
from cognite.client._api_client import APIClient
4+
from cognite.client.data_classes import Project, ProjectUpdate, ProjectWrite
45

56

67
class ProjectsAPI(APIClient):
78
_RESOURCE_PATH = "/projects"
89

9-
def create(self) -> None:
10+
def create(self, item: ProjectWrite) -> Project:
11+
"""`Create a project <https://developer.cognite.com/api#tag/Projects/operation/createProject>`_"""
1012
raise NotImplementedError
1113

12-
def retrieve(self) -> None:
14+
def retrieve(self, project: str) -> Project:
15+
"""`Retrieve a project <https://developer.cognite.com/api#tag/Projects/operation/getProject>`_"""
1316
raise NotImplementedError
1417

15-
def update(self) -> None:
18+
def update(self, item: ProjectWrite | ProjectUpdate) -> Project:
19+
"""`Update a project <https://developer.cognite.com/api#tag/Projects/operation/updateProject>`_"""
1620
raise NotImplementedError
1721

18-
def list(self) -> None:
22+
def list(self) -> list[str]:
23+
"""`List all projects <https://developer.cognite.com/api#tag/Projects/operation/listProjects>`_"""
1924
raise NotImplementedError

cognite/client/data_classes/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
LabelDefinitionWrite,
152152
LabelFilter,
153153
)
154+
from cognite.client.data_classes.projects import Claim, OIDCConfiguration, Project, ProjectUpdate, ProjectWrite
154155
from cognite.client.data_classes.raw import (
155156
Database,
156157
DatabaseList,
@@ -557,4 +558,9 @@
557558
"WorkflowTask",
558559
"WorkflowUpsertList",
559560
"WorkflowVersionUpsertList",
561+
"Project",
562+
"ProjectUpdate",
563+
"ProjectWrite",
564+
"OIDCConfiguration",
565+
"Claim",
560566
]

cognite/client/data_classes/projects.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ class Claim(CogniteObject):
2727
def __init__(self, claim_name: str) -> None:
2828
self.claim_name = claim_name
2929

30+
@classmethod
31+
def _load(cls, resource: dict[str, Any], cognite_client: CogniteClient | None = None) -> Claim:
32+
return cls(claim_name=resource["claimName"])
33+
3034

3135
class OIDCConfiguration(CogniteObject):
3236
"""OIDC configuration for a project.

cognite/client/testing.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
from cognite.client._api.geospatial import GeospatialAPI
3232
from cognite.client._api.iam import IAMAPI, GroupsAPI, SecurityCategoriesAPI, SessionsAPI, TokenAPI
3333
from cognite.client._api.labels import LabelsAPI
34+
from cognite.client._api.projects import ProjectsAPI
3435
from cognite.client._api.raw import RawAPI, RawDatabasesAPI, RawRowsAPI, RawTablesAPI
3536
from cognite.client._api.relationships import RelationshipsAPI
3637
from cognite.client._api.sequences import SequencesAPI, SequencesDataAPI
@@ -112,6 +113,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
112113
self.geospatial = MagicMock(spec_set=GeospatialAPI)
113114

114115
self.iam = MagicMock(spec=IAMAPI)
116+
self.iam.projects = MagicMock(spec_set=ProjectsAPI)
115117
self.iam.groups = MagicMock(spec_set=GroupsAPI)
116118
self.iam.security_categories = MagicMock(spec_set=SecurityCategoriesAPI)
117119
self.iam.sessions = MagicMock(spec_set=SessionsAPI)

0 commit comments

Comments
 (0)