From 6fb5de58ad6ae5ef8a7dce3be47ffe34f3e7f431 Mon Sep 17 00:00:00 2001 From: scaleway-bot Date: Mon, 28 Jul 2025 14:24:04 +0000 Subject: [PATCH] feat: update generated APIs --- .../scaleway_async/mongodb/v1/__init__.py | 8 ++ .../scaleway_async/mongodb/v1/api.py | 89 +++++++++++++++++++ .../scaleway_async/mongodb/v1/marshalling.py | 66 ++++++++++++-- .../scaleway_async/mongodb/v1/types.py | 48 ++++++++++ .../mongodb/v1alpha1/marshalling.py | 24 +++-- scaleway/scaleway/mongodb/v1/__init__.py | 8 ++ scaleway/scaleway/mongodb/v1/api.py | 89 +++++++++++++++++++ scaleway/scaleway/mongodb/v1/marshalling.py | 66 ++++++++++++-- scaleway/scaleway/mongodb/v1/types.py | 48 ++++++++++ .../scaleway/mongodb/v1alpha1/marshalling.py | 24 +++-- 10 files changed, 450 insertions(+), 20 deletions(-) diff --git a/scaleway-async/scaleway_async/mongodb/v1/__init__.py b/scaleway-async/scaleway_async/mongodb/v1/__init__.py index 8dc097d17..d68b88190 100644 --- a/scaleway-async/scaleway_async/mongodb/v1/__init__.py +++ b/scaleway-async/scaleway_async/mongodb/v1/__init__.py @@ -2,6 +2,7 @@ # If you have any remark or suggestion do not hesitate to open an issue. from .types import InstanceStatus from .content import INSTANCE_TRANSIENT_STATUSES +from .types import ListDatabasesRequestOrderBy from .types import ListInstancesRequestOrderBy from .types import ListSnapshotsRequestOrderBy from .types import ListUsersRequestOrderBy @@ -20,6 +21,7 @@ from .types import NodeTypeVolumeType from .types import UserRole from .types import EndpointSpec +from .types import Database from .types import Instance from .types import NodeType from .types import Snapshot @@ -36,6 +38,8 @@ from .types import GetInstanceCertificateRequest from .types import GetInstanceRequest from .types import GetSnapshotRequest +from .types import ListDatabasesRequest +from .types import ListDatabasesResponse from .types import ListInstancesRequest from .types import ListInstancesResponse from .types import ListNodeTypesRequest @@ -57,6 +61,7 @@ __all__ = [ "InstanceStatus", "INSTANCE_TRANSIENT_STATUSES", + "ListDatabasesRequestOrderBy", "ListInstancesRequestOrderBy", "ListSnapshotsRequestOrderBy", "ListUsersRequestOrderBy", @@ -75,6 +80,7 @@ "NodeTypeVolumeType", "UserRole", "EndpointSpec", + "Database", "Instance", "NodeType", "Snapshot", @@ -91,6 +97,8 @@ "GetInstanceCertificateRequest", "GetInstanceRequest", "GetSnapshotRequest", + "ListDatabasesRequest", + "ListDatabasesResponse", "ListInstancesRequest", "ListInstancesResponse", "ListNodeTypesRequest", diff --git a/scaleway-async/scaleway_async/mongodb/v1/api.py b/scaleway-async/scaleway_async/mongodb/v1/api.py index 381d12b4e..438aded2e 100644 --- a/scaleway-async/scaleway_async/mongodb/v1/api.py +++ b/scaleway-async/scaleway_async/mongodb/v1/api.py @@ -18,6 +18,7 @@ wait_for_resource_async, ) from .types import ( + ListDatabasesRequestOrderBy, ListInstancesRequestOrderBy, ListSnapshotsRequestOrderBy, ListUsersRequestOrderBy, @@ -26,9 +27,11 @@ CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, + Database, Endpoint, EndpointSpec, Instance, + ListDatabasesResponse, ListInstancesResponse, ListNodeTypesResponse, ListSnapshotsResponse, @@ -56,6 +59,7 @@ unmarshal_Instance, unmarshal_Snapshot, unmarshal_User, + unmarshal_ListDatabasesResponse, unmarshal_ListInstancesResponse, unmarshal_ListNodeTypesResponse, unmarshal_ListSnapshotsResponse, @@ -1269,6 +1273,91 @@ async def set_user_role( self._throw_on_error(res) return unmarshal_User(res.json()) + async def list_databases( + self, + *, + instance_id: str, + region: Optional[ScwRegion] = None, + order_by: Optional[ListDatabasesRequestOrderBy] = None, + page: Optional[int] = None, + page_size: Optional[int] = None, + ) -> ListDatabasesResponse: + """ + List databases in a Database Instance. + List all databases of a given Database Instance. + :param instance_id: UUID of the Database Instance. + :param region: Region to target. If none is passed will use default region from the config. + :param order_by: Criteria to use when requesting user listing. + :param page: + :param page_size: + :return: :class:`ListDatabasesResponse ` + + Usage: + :: + + result = await api.list_databases( + instance_id="example", + ) + """ + + param_region = validate_path_param( + "region", region or self.client.default_region + ) + param_instance_id = validate_path_param("instance_id", instance_id) + + res = self._request( + "GET", + f"/mongodb/v1/regions/{param_region}/instances/{param_instance_id}/databases", + params={ + "order_by": order_by, + "page": page, + "page_size": page_size or self.client.default_page_size, + }, + ) + + self._throw_on_error(res) + return unmarshal_ListDatabasesResponse(res.json()) + + async def list_databases_all( + self, + *, + instance_id: str, + region: Optional[ScwRegion] = None, + order_by: Optional[ListDatabasesRequestOrderBy] = None, + page: Optional[int] = None, + page_size: Optional[int] = None, + ) -> List[Database]: + """ + List databases in a Database Instance. + List all databases of a given Database Instance. + :param instance_id: UUID of the Database Instance. + :param region: Region to target. If none is passed will use default region from the config. + :param order_by: Criteria to use when requesting user listing. + :param page: + :param page_size: + :return: :class:`List[Database] ` + + Usage: + :: + + result = await api.list_databases_all( + instance_id="example", + ) + """ + + return await fetch_all_pages_async( + type=ListDatabasesResponse, + key="databases", + fetcher=self.list_databases, + args={ + "instance_id": instance_id, + "region": region, + "order_by": order_by, + "page": page, + "page_size": page_size, + }, + ) + async def delete_endpoint( self, *, diff --git a/scaleway-async/scaleway_async/mongodb/v1/marshalling.py b/scaleway-async/scaleway_async/mongodb/v1/marshalling.py index ecef2c1e8..9d4184b4f 100644 --- a/scaleway-async/scaleway_async/mongodb/v1/marshalling.py +++ b/scaleway-async/scaleway_async/mongodb/v1/marshalling.py @@ -19,6 +19,8 @@ Snapshot, UserRole, User, + Database, + ListDatabasesResponse, ListInstancesResponse, NodeTypeVolumeType, NodeType, @@ -350,6 +352,42 @@ def unmarshal_User(data: Any) -> User: return User(**args) +def unmarshal_Database(data: Any) -> Database: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'Database' failed as data isn't a dictionary." + ) + + args: Dict[str, Any] = {} + + field = data.get("name", None) + if field is not None: + args["name"] = field + + return Database(**args) + + +def unmarshal_ListDatabasesResponse(data: Any) -> ListDatabasesResponse: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ListDatabasesResponse' failed as data isn't a dictionary." + ) + + args: Dict[str, Any] = {} + + field = data.get("databases", None) + if field is not None: + args["databases"] = ( + [unmarshal_Database(v) for v in field] if field is not None else None + ) + + field = data.get("total_count", None) + if field is not None: + args["total_count"] = field + + return ListDatabasesResponse(**args) + + def unmarshal_ListInstancesResponse(data: Any) -> ListInstancesResponse: if not isinstance(data, dict): raise TypeError( @@ -589,8 +627,16 @@ def marshal_EndpointSpec( output.update( resolve_one_of( [ - OneOfPossibility("public_network", request.public_network), - OneOfPossibility("private_network", request.private_network), + OneOfPossibility( + param="public_network", + value=request.public_network, + marshal_func=marshal_EndpointSpecPublicNetworkDetails, + ), + OneOfPossibility( + param="private_network", + value=request.private_network, + marshal_func=marshal_EndpointSpecPrivateNetworkDetails, + ), ] ), ) @@ -731,8 +777,14 @@ def marshal_UserRole( output.update( resolve_one_of( [ - OneOfPossibility("database_name", request.database_name), - OneOfPossibility("any_database", request.any_database), + OneOfPossibility( + param="database_name", + value=request.database_name, + marshal_func=None, + ), + OneOfPossibility( + param="any_database", value=request.any_database, marshal_func=None + ), ] ), ) @@ -821,7 +873,11 @@ def marshal_UpgradeInstanceRequest( output.update( resolve_one_of( [ - OneOfPossibility("volume_size_bytes", request.volume_size_bytes), + OneOfPossibility( + param="volume_size_bytes", + value=request.volume_size_bytes, + marshal_func=None, + ), ] ), ) diff --git a/scaleway-async/scaleway_async/mongodb/v1/types.py b/scaleway-async/scaleway_async/mongodb/v1/types.py index f8aa2c08e..fa3193f51 100644 --- a/scaleway-async/scaleway_async/mongodb/v1/types.py +++ b/scaleway-async/scaleway_async/mongodb/v1/types.py @@ -30,6 +30,14 @@ def __str__(self) -> str: return str(self.value) +class ListDatabasesRequestOrderBy(str, Enum, metaclass=StrEnumMeta): + NAME_ASC = "name_asc" + NAME_DESC = "name_desc" + + def __str__(self) -> str: + return str(self.value) + + class ListInstancesRequestOrderBy(str, Enum, metaclass=StrEnumMeta): CREATED_AT_ASC = "created_at_asc" CREATED_AT_DESC = "created_at_desc" @@ -234,6 +242,11 @@ class EndpointSpec: private_network: Optional[EndpointSpecPrivateNetworkDetails] +@dataclass +class Database: + name: str + + @dataclass class Instance: id: str @@ -662,6 +675,41 @@ class GetSnapshotRequest: """ +@dataclass +class ListDatabasesRequest: + instance_id: str + """ + UUID of the Database Instance. + """ + + region: Optional[ScwRegion] + """ + Region to target. If none is passed will use default region from the config. + """ + + order_by: Optional[ListDatabasesRequestOrderBy] + """ + Criteria to use when requesting user listing. + """ + + page: Optional[int] + + page_size: Optional[int] + + +@dataclass +class ListDatabasesResponse: + databases: List[Database] + """ + List of the databases. + """ + + total_count: int + """ + Total count of databases present on a Database Instance. + """ + + @dataclass class ListInstancesRequest: region: Optional[ScwRegion] diff --git a/scaleway-async/scaleway_async/mongodb/v1alpha1/marshalling.py b/scaleway-async/scaleway_async/mongodb/v1alpha1/marshalling.py index 4f2bef5ed..e058309e7 100644 --- a/scaleway-async/scaleway_async/mongodb/v1alpha1/marshalling.py +++ b/scaleway-async/scaleway_async/mongodb/v1alpha1/marshalling.py @@ -707,8 +707,16 @@ def marshal_EndpointSpec( output.update( resolve_one_of( [ - OneOfPossibility("public", request.public), - OneOfPossibility("private_network", request.private_network), + OneOfPossibility( + param="public", + value=request.public, + marshal_func=marshal_EndpointSpecPublicDetails, + ), + OneOfPossibility( + param="private_network", + value=request.private_network, + marshal_func=marshal_EndpointSpecPrivateNetworkDetails, + ), ] ), ) @@ -862,8 +870,12 @@ def marshal_UserRole( output.update( resolve_one_of( [ - OneOfPossibility("database", request.database), - OneOfPossibility("any_database", request.any_database), + OneOfPossibility( + param="database", value=request.database, marshal_func=None + ), + OneOfPossibility( + param="any_database", value=request.any_database, marshal_func=None + ), ] ), ) @@ -939,7 +951,9 @@ def marshal_UpgradeInstanceRequest( output.update( resolve_one_of( [ - OneOfPossibility("volume_size", request.volume_size), + OneOfPossibility( + param="volume_size", value=request.volume_size, marshal_func=None + ), ] ), ) diff --git a/scaleway/scaleway/mongodb/v1/__init__.py b/scaleway/scaleway/mongodb/v1/__init__.py index 8dc097d17..d68b88190 100644 --- a/scaleway/scaleway/mongodb/v1/__init__.py +++ b/scaleway/scaleway/mongodb/v1/__init__.py @@ -2,6 +2,7 @@ # If you have any remark or suggestion do not hesitate to open an issue. from .types import InstanceStatus from .content import INSTANCE_TRANSIENT_STATUSES +from .types import ListDatabasesRequestOrderBy from .types import ListInstancesRequestOrderBy from .types import ListSnapshotsRequestOrderBy from .types import ListUsersRequestOrderBy @@ -20,6 +21,7 @@ from .types import NodeTypeVolumeType from .types import UserRole from .types import EndpointSpec +from .types import Database from .types import Instance from .types import NodeType from .types import Snapshot @@ -36,6 +38,8 @@ from .types import GetInstanceCertificateRequest from .types import GetInstanceRequest from .types import GetSnapshotRequest +from .types import ListDatabasesRequest +from .types import ListDatabasesResponse from .types import ListInstancesRequest from .types import ListInstancesResponse from .types import ListNodeTypesRequest @@ -57,6 +61,7 @@ __all__ = [ "InstanceStatus", "INSTANCE_TRANSIENT_STATUSES", + "ListDatabasesRequestOrderBy", "ListInstancesRequestOrderBy", "ListSnapshotsRequestOrderBy", "ListUsersRequestOrderBy", @@ -75,6 +80,7 @@ "NodeTypeVolumeType", "UserRole", "EndpointSpec", + "Database", "Instance", "NodeType", "Snapshot", @@ -91,6 +97,8 @@ "GetInstanceCertificateRequest", "GetInstanceRequest", "GetSnapshotRequest", + "ListDatabasesRequest", + "ListDatabasesResponse", "ListInstancesRequest", "ListInstancesResponse", "ListNodeTypesRequest", diff --git a/scaleway/scaleway/mongodb/v1/api.py b/scaleway/scaleway/mongodb/v1/api.py index 8c6798a41..6ef8eff1e 100644 --- a/scaleway/scaleway/mongodb/v1/api.py +++ b/scaleway/scaleway/mongodb/v1/api.py @@ -18,6 +18,7 @@ wait_for_resource, ) from .types import ( + ListDatabasesRequestOrderBy, ListInstancesRequestOrderBy, ListSnapshotsRequestOrderBy, ListUsersRequestOrderBy, @@ -26,9 +27,11 @@ CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, + Database, Endpoint, EndpointSpec, Instance, + ListDatabasesResponse, ListInstancesResponse, ListNodeTypesResponse, ListSnapshotsResponse, @@ -56,6 +59,7 @@ unmarshal_Instance, unmarshal_Snapshot, unmarshal_User, + unmarshal_ListDatabasesResponse, unmarshal_ListInstancesResponse, unmarshal_ListNodeTypesResponse, unmarshal_ListSnapshotsResponse, @@ -1265,6 +1269,91 @@ def set_user_role( self._throw_on_error(res) return unmarshal_User(res.json()) + def list_databases( + self, + *, + instance_id: str, + region: Optional[ScwRegion] = None, + order_by: Optional[ListDatabasesRequestOrderBy] = None, + page: Optional[int] = None, + page_size: Optional[int] = None, + ) -> ListDatabasesResponse: + """ + List databases in a Database Instance. + List all databases of a given Database Instance. + :param instance_id: UUID of the Database Instance. + :param region: Region to target. If none is passed will use default region from the config. + :param order_by: Criteria to use when requesting user listing. + :param page: + :param page_size: + :return: :class:`ListDatabasesResponse ` + + Usage: + :: + + result = api.list_databases( + instance_id="example", + ) + """ + + param_region = validate_path_param( + "region", region or self.client.default_region + ) + param_instance_id = validate_path_param("instance_id", instance_id) + + res = self._request( + "GET", + f"/mongodb/v1/regions/{param_region}/instances/{param_instance_id}/databases", + params={ + "order_by": order_by, + "page": page, + "page_size": page_size or self.client.default_page_size, + }, + ) + + self._throw_on_error(res) + return unmarshal_ListDatabasesResponse(res.json()) + + def list_databases_all( + self, + *, + instance_id: str, + region: Optional[ScwRegion] = None, + order_by: Optional[ListDatabasesRequestOrderBy] = None, + page: Optional[int] = None, + page_size: Optional[int] = None, + ) -> List[Database]: + """ + List databases in a Database Instance. + List all databases of a given Database Instance. + :param instance_id: UUID of the Database Instance. + :param region: Region to target. If none is passed will use default region from the config. + :param order_by: Criteria to use when requesting user listing. + :param page: + :param page_size: + :return: :class:`List[Database] ` + + Usage: + :: + + result = api.list_databases_all( + instance_id="example", + ) + """ + + return fetch_all_pages( + type=ListDatabasesResponse, + key="databases", + fetcher=self.list_databases, + args={ + "instance_id": instance_id, + "region": region, + "order_by": order_by, + "page": page, + "page_size": page_size, + }, + ) + def delete_endpoint( self, *, diff --git a/scaleway/scaleway/mongodb/v1/marshalling.py b/scaleway/scaleway/mongodb/v1/marshalling.py index ecef2c1e8..9d4184b4f 100644 --- a/scaleway/scaleway/mongodb/v1/marshalling.py +++ b/scaleway/scaleway/mongodb/v1/marshalling.py @@ -19,6 +19,8 @@ Snapshot, UserRole, User, + Database, + ListDatabasesResponse, ListInstancesResponse, NodeTypeVolumeType, NodeType, @@ -350,6 +352,42 @@ def unmarshal_User(data: Any) -> User: return User(**args) +def unmarshal_Database(data: Any) -> Database: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'Database' failed as data isn't a dictionary." + ) + + args: Dict[str, Any] = {} + + field = data.get("name", None) + if field is not None: + args["name"] = field + + return Database(**args) + + +def unmarshal_ListDatabasesResponse(data: Any) -> ListDatabasesResponse: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ListDatabasesResponse' failed as data isn't a dictionary." + ) + + args: Dict[str, Any] = {} + + field = data.get("databases", None) + if field is not None: + args["databases"] = ( + [unmarshal_Database(v) for v in field] if field is not None else None + ) + + field = data.get("total_count", None) + if field is not None: + args["total_count"] = field + + return ListDatabasesResponse(**args) + + def unmarshal_ListInstancesResponse(data: Any) -> ListInstancesResponse: if not isinstance(data, dict): raise TypeError( @@ -589,8 +627,16 @@ def marshal_EndpointSpec( output.update( resolve_one_of( [ - OneOfPossibility("public_network", request.public_network), - OneOfPossibility("private_network", request.private_network), + OneOfPossibility( + param="public_network", + value=request.public_network, + marshal_func=marshal_EndpointSpecPublicNetworkDetails, + ), + OneOfPossibility( + param="private_network", + value=request.private_network, + marshal_func=marshal_EndpointSpecPrivateNetworkDetails, + ), ] ), ) @@ -731,8 +777,14 @@ def marshal_UserRole( output.update( resolve_one_of( [ - OneOfPossibility("database_name", request.database_name), - OneOfPossibility("any_database", request.any_database), + OneOfPossibility( + param="database_name", + value=request.database_name, + marshal_func=None, + ), + OneOfPossibility( + param="any_database", value=request.any_database, marshal_func=None + ), ] ), ) @@ -821,7 +873,11 @@ def marshal_UpgradeInstanceRequest( output.update( resolve_one_of( [ - OneOfPossibility("volume_size_bytes", request.volume_size_bytes), + OneOfPossibility( + param="volume_size_bytes", + value=request.volume_size_bytes, + marshal_func=None, + ), ] ), ) diff --git a/scaleway/scaleway/mongodb/v1/types.py b/scaleway/scaleway/mongodb/v1/types.py index f8aa2c08e..fa3193f51 100644 --- a/scaleway/scaleway/mongodb/v1/types.py +++ b/scaleway/scaleway/mongodb/v1/types.py @@ -30,6 +30,14 @@ def __str__(self) -> str: return str(self.value) +class ListDatabasesRequestOrderBy(str, Enum, metaclass=StrEnumMeta): + NAME_ASC = "name_asc" + NAME_DESC = "name_desc" + + def __str__(self) -> str: + return str(self.value) + + class ListInstancesRequestOrderBy(str, Enum, metaclass=StrEnumMeta): CREATED_AT_ASC = "created_at_asc" CREATED_AT_DESC = "created_at_desc" @@ -234,6 +242,11 @@ class EndpointSpec: private_network: Optional[EndpointSpecPrivateNetworkDetails] +@dataclass +class Database: + name: str + + @dataclass class Instance: id: str @@ -662,6 +675,41 @@ class GetSnapshotRequest: """ +@dataclass +class ListDatabasesRequest: + instance_id: str + """ + UUID of the Database Instance. + """ + + region: Optional[ScwRegion] + """ + Region to target. If none is passed will use default region from the config. + """ + + order_by: Optional[ListDatabasesRequestOrderBy] + """ + Criteria to use when requesting user listing. + """ + + page: Optional[int] + + page_size: Optional[int] + + +@dataclass +class ListDatabasesResponse: + databases: List[Database] + """ + List of the databases. + """ + + total_count: int + """ + Total count of databases present on a Database Instance. + """ + + @dataclass class ListInstancesRequest: region: Optional[ScwRegion] diff --git a/scaleway/scaleway/mongodb/v1alpha1/marshalling.py b/scaleway/scaleway/mongodb/v1alpha1/marshalling.py index 4f2bef5ed..e058309e7 100644 --- a/scaleway/scaleway/mongodb/v1alpha1/marshalling.py +++ b/scaleway/scaleway/mongodb/v1alpha1/marshalling.py @@ -707,8 +707,16 @@ def marshal_EndpointSpec( output.update( resolve_one_of( [ - OneOfPossibility("public", request.public), - OneOfPossibility("private_network", request.private_network), + OneOfPossibility( + param="public", + value=request.public, + marshal_func=marshal_EndpointSpecPublicDetails, + ), + OneOfPossibility( + param="private_network", + value=request.private_network, + marshal_func=marshal_EndpointSpecPrivateNetworkDetails, + ), ] ), ) @@ -862,8 +870,12 @@ def marshal_UserRole( output.update( resolve_one_of( [ - OneOfPossibility("database", request.database), - OneOfPossibility("any_database", request.any_database), + OneOfPossibility( + param="database", value=request.database, marshal_func=None + ), + OneOfPossibility( + param="any_database", value=request.any_database, marshal_func=None + ), ] ), ) @@ -939,7 +951,9 @@ def marshal_UpgradeInstanceRequest( output.update( resolve_one_of( [ - OneOfPossibility("volume_size", request.volume_size), + OneOfPossibility( + param="volume_size", value=request.volume_size, marshal_func=None + ), ] ), )