diff --git a/scaleway-async/scaleway_async/datawarehouse/v1beta1/__init__.py b/scaleway-async/scaleway_async/datawarehouse/v1beta1/__init__.py index 8757677c2..dc55240b2 100644 --- a/scaleway-async/scaleway_async/datawarehouse/v1beta1/__init__.py +++ b/scaleway-async/scaleway_async/datawarehouse/v1beta1/__init__.py @@ -6,10 +6,10 @@ from .types import ListDatabasesRequestOrderBy from .types import ListDeploymentsRequestOrderBy from .types import ListUsersRequestOrderBy -from .types import EndpointPrivateNetworkDetails +from .types import NodePrivateNetworkDetails from .types import EndpointPublicDetails from .types import EndpointService -from .types import EndpointSpecPrivateNetworkDetails +from .types import PrivateNetworkDetails from .types import EndpointSpecPublicDetails from .types import Endpoint from .types import EndpointSpec @@ -51,10 +51,10 @@ "ListDatabasesRequestOrderBy", "ListDeploymentsRequestOrderBy", "ListUsersRequestOrderBy", - "EndpointPrivateNetworkDetails", + "NodePrivateNetworkDetails", "EndpointPublicDetails", "EndpointService", - "EndpointSpecPrivateNetworkDetails", + "PrivateNetworkDetails", "EndpointSpecPublicDetails", "Endpoint", "EndpointSpec", diff --git a/scaleway-async/scaleway_async/datawarehouse/v1beta1/marshalling.py b/scaleway-async/scaleway_async/datawarehouse/v1beta1/marshalling.py index 3baeaf5a5..ef704f715 100644 --- a/scaleway-async/scaleway_async/datawarehouse/v1beta1/marshalling.py +++ b/scaleway-async/scaleway_async/datawarehouse/v1beta1/marshalling.py @@ -11,9 +11,10 @@ ) from .types import ( DeploymentStatus, - EndpointPrivateNetworkDetails, + NodePrivateNetworkDetails, EndpointPublicDetails, EndpointService, + PrivateNetworkDetails, Endpoint, Database, Deployment, @@ -26,7 +27,6 @@ Version, ListVersionsResponse, CreateDatabaseRequest, - EndpointSpecPrivateNetworkDetails, EndpointSpecPublicDetails, EndpointSpec, CreateDeploymentRequest, @@ -37,21 +37,39 @@ ) -def unmarshal_EndpointPrivateNetworkDetails(data: Any) -> EndpointPrivateNetworkDetails: +def unmarshal_NodePrivateNetworkDetails(data: Any) -> NodePrivateNetworkDetails: if not isinstance(data, dict): raise TypeError( - "Unmarshalling the type 'EndpointPrivateNetworkDetails' failed as data isn't a dictionary." + "Unmarshalling the type 'NodePrivateNetworkDetails' failed as data isn't a dictionary." ) args: dict[str, Any] = {} - field = data.get("private_network_id", None) + field = data.get("node_name", None) if field is not None: - args["private_network_id"] = field + args["node_name"] = field else: - args["private_network_id"] = None + args["node_name"] = None + + field = data.get("shard", None) + if field is not None: + args["shard"] = field + else: + args["shard"] = 0 + + field = data.get("replica", None) + if field is not None: + args["replica"] = field + else: + args["replica"] = 0 + + field = data.get("ip_address", None) + if field is not None: + args["ip_address"] = field + else: + args["ip_address"] = None - return EndpointPrivateNetworkDetails(**args) + return NodePrivateNetworkDetails(**args) def unmarshal_EndpointPublicDetails(data: Any) -> EndpointPublicDetails: @@ -88,6 +106,33 @@ def unmarshal_EndpointService(data: Any) -> EndpointService: return EndpointService(**args) +def unmarshal_PrivateNetworkDetails(data: Any) -> PrivateNetworkDetails: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'PrivateNetworkDetails' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("private_network_id", None) + if field is not None: + args["private_network_id"] = field + else: + args["private_network_id"] = None + + field = data.get("nodes", None) + if field is not None: + args["nodes"] = ( + [unmarshal_NodePrivateNetworkDetails(v) for v in field] + if field is not None + else None + ) + else: + args["nodes"] = [] + + return PrivateNetworkDetails(**args) + + def unmarshal_Endpoint(data: Any) -> Endpoint: if not isinstance(data, dict): raise TypeError( @@ -118,7 +163,7 @@ def unmarshal_Endpoint(data: Any) -> Endpoint: field = data.get("private_network", None) if field is not None: - args["private_network"] = unmarshal_EndpointPrivateNetworkDetails(field) + args["private_network"] = unmarshal_PrivateNetworkDetails(field) else: args["private_network"] = None @@ -507,14 +552,23 @@ def marshal_CreateDatabaseRequest( return output -def marshal_EndpointSpecPrivateNetworkDetails( - request: EndpointSpecPrivateNetworkDetails, +def marshal_NodePrivateNetworkDetails( + request: NodePrivateNetworkDetails, defaults: ProfileDefaults, ) -> dict[str, Any]: output: dict[str, Any] = {} - if request.private_network_id is not None: - output["private_network_id"] = request.private_network_id + if request.node_name is not None: + output["node_name"] = request.node_name + + if request.shard is not None: + output["shard"] = request.shard + + if request.replica is not None: + output["replica"] = request.replica + + if request.ip_address is not None: + output["ip_address"] = request.ip_address return output @@ -528,6 +582,23 @@ def marshal_EndpointSpecPublicDetails( return output +def marshal_PrivateNetworkDetails( + request: PrivateNetworkDetails, + defaults: ProfileDefaults, +) -> dict[str, Any]: + output: dict[str, Any] = {} + + if request.private_network_id is not None: + output["private_network_id"] = request.private_network_id + + if request.nodes is not None: + output["nodes"] = [ + marshal_NodePrivateNetworkDetails(item, defaults) for item in request.nodes + ] + + return output + + def marshal_EndpointSpec( request: EndpointSpec, defaults: ProfileDefaults, @@ -544,7 +615,7 @@ def marshal_EndpointSpec( OneOfPossibility( param="private_network", value=request.private_network, - marshal_func=marshal_EndpointSpecPrivateNetworkDetails, + marshal_func=marshal_PrivateNetworkDetails, ), ] ), diff --git a/scaleway-async/scaleway_async/datawarehouse/v1beta1/types.py b/scaleway-async/scaleway_async/datawarehouse/v1beta1/types.py index 3c0b165fa..20cb571ef 100644 --- a/scaleway-async/scaleway_async/datawarehouse/v1beta1/types.py +++ b/scaleway-async/scaleway_async/datawarehouse/v1beta1/types.py @@ -73,8 +73,26 @@ def __str__(self) -> str: @dataclass -class EndpointPrivateNetworkDetails: - private_network_id: str +class NodePrivateNetworkDetails: + node_name: str + """ + Name of the node. + """ + + shard: int + """ + The ClickHouse shard to which the node belongs to. + """ + + replica: int + """ + The ClickHouse replica to which the node belongs to. + """ + + ip_address: str + """ + Private static IP address of that node. + """ @dataclass @@ -89,12 +107,17 @@ class EndpointService: @dataclass -class EndpointSpecPrivateNetworkDetails: +class PrivateNetworkDetails: private_network_id: str """ UUID of the Private Network. """ + nodes: list[NodePrivateNetworkDetails] + """ + List of nodes belonging to this private network and their details. + """ + @dataclass class EndpointSpecPublicDetails: @@ -118,7 +141,7 @@ class Endpoint: List of services associated with the endpoint. """ - private_network: Optional[EndpointPrivateNetworkDetails] = None + private_network: Optional[PrivateNetworkDetails] = None public: Optional[EndpointPublicDetails] = None @@ -127,7 +150,7 @@ class Endpoint: class EndpointSpec: public: Optional[EndpointSpecPublicDetails] = None - private_network: Optional[EndpointSpecPrivateNetworkDetails] = None + private_network: Optional[PrivateNetworkDetails] = None @dataclass diff --git a/scaleway/scaleway/datawarehouse/v1beta1/__init__.py b/scaleway/scaleway/datawarehouse/v1beta1/__init__.py index 8757677c2..dc55240b2 100644 --- a/scaleway/scaleway/datawarehouse/v1beta1/__init__.py +++ b/scaleway/scaleway/datawarehouse/v1beta1/__init__.py @@ -6,10 +6,10 @@ from .types import ListDatabasesRequestOrderBy from .types import ListDeploymentsRequestOrderBy from .types import ListUsersRequestOrderBy -from .types import EndpointPrivateNetworkDetails +from .types import NodePrivateNetworkDetails from .types import EndpointPublicDetails from .types import EndpointService -from .types import EndpointSpecPrivateNetworkDetails +from .types import PrivateNetworkDetails from .types import EndpointSpecPublicDetails from .types import Endpoint from .types import EndpointSpec @@ -51,10 +51,10 @@ "ListDatabasesRequestOrderBy", "ListDeploymentsRequestOrderBy", "ListUsersRequestOrderBy", - "EndpointPrivateNetworkDetails", + "NodePrivateNetworkDetails", "EndpointPublicDetails", "EndpointService", - "EndpointSpecPrivateNetworkDetails", + "PrivateNetworkDetails", "EndpointSpecPublicDetails", "Endpoint", "EndpointSpec", diff --git a/scaleway/scaleway/datawarehouse/v1beta1/marshalling.py b/scaleway/scaleway/datawarehouse/v1beta1/marshalling.py index 3baeaf5a5..ef704f715 100644 --- a/scaleway/scaleway/datawarehouse/v1beta1/marshalling.py +++ b/scaleway/scaleway/datawarehouse/v1beta1/marshalling.py @@ -11,9 +11,10 @@ ) from .types import ( DeploymentStatus, - EndpointPrivateNetworkDetails, + NodePrivateNetworkDetails, EndpointPublicDetails, EndpointService, + PrivateNetworkDetails, Endpoint, Database, Deployment, @@ -26,7 +27,6 @@ Version, ListVersionsResponse, CreateDatabaseRequest, - EndpointSpecPrivateNetworkDetails, EndpointSpecPublicDetails, EndpointSpec, CreateDeploymentRequest, @@ -37,21 +37,39 @@ ) -def unmarshal_EndpointPrivateNetworkDetails(data: Any) -> EndpointPrivateNetworkDetails: +def unmarshal_NodePrivateNetworkDetails(data: Any) -> NodePrivateNetworkDetails: if not isinstance(data, dict): raise TypeError( - "Unmarshalling the type 'EndpointPrivateNetworkDetails' failed as data isn't a dictionary." + "Unmarshalling the type 'NodePrivateNetworkDetails' failed as data isn't a dictionary." ) args: dict[str, Any] = {} - field = data.get("private_network_id", None) + field = data.get("node_name", None) if field is not None: - args["private_network_id"] = field + args["node_name"] = field else: - args["private_network_id"] = None + args["node_name"] = None + + field = data.get("shard", None) + if field is not None: + args["shard"] = field + else: + args["shard"] = 0 + + field = data.get("replica", None) + if field is not None: + args["replica"] = field + else: + args["replica"] = 0 + + field = data.get("ip_address", None) + if field is not None: + args["ip_address"] = field + else: + args["ip_address"] = None - return EndpointPrivateNetworkDetails(**args) + return NodePrivateNetworkDetails(**args) def unmarshal_EndpointPublicDetails(data: Any) -> EndpointPublicDetails: @@ -88,6 +106,33 @@ def unmarshal_EndpointService(data: Any) -> EndpointService: return EndpointService(**args) +def unmarshal_PrivateNetworkDetails(data: Any) -> PrivateNetworkDetails: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'PrivateNetworkDetails' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("private_network_id", None) + if field is not None: + args["private_network_id"] = field + else: + args["private_network_id"] = None + + field = data.get("nodes", None) + if field is not None: + args["nodes"] = ( + [unmarshal_NodePrivateNetworkDetails(v) for v in field] + if field is not None + else None + ) + else: + args["nodes"] = [] + + return PrivateNetworkDetails(**args) + + def unmarshal_Endpoint(data: Any) -> Endpoint: if not isinstance(data, dict): raise TypeError( @@ -118,7 +163,7 @@ def unmarshal_Endpoint(data: Any) -> Endpoint: field = data.get("private_network", None) if field is not None: - args["private_network"] = unmarshal_EndpointPrivateNetworkDetails(field) + args["private_network"] = unmarshal_PrivateNetworkDetails(field) else: args["private_network"] = None @@ -507,14 +552,23 @@ def marshal_CreateDatabaseRequest( return output -def marshal_EndpointSpecPrivateNetworkDetails( - request: EndpointSpecPrivateNetworkDetails, +def marshal_NodePrivateNetworkDetails( + request: NodePrivateNetworkDetails, defaults: ProfileDefaults, ) -> dict[str, Any]: output: dict[str, Any] = {} - if request.private_network_id is not None: - output["private_network_id"] = request.private_network_id + if request.node_name is not None: + output["node_name"] = request.node_name + + if request.shard is not None: + output["shard"] = request.shard + + if request.replica is not None: + output["replica"] = request.replica + + if request.ip_address is not None: + output["ip_address"] = request.ip_address return output @@ -528,6 +582,23 @@ def marshal_EndpointSpecPublicDetails( return output +def marshal_PrivateNetworkDetails( + request: PrivateNetworkDetails, + defaults: ProfileDefaults, +) -> dict[str, Any]: + output: dict[str, Any] = {} + + if request.private_network_id is not None: + output["private_network_id"] = request.private_network_id + + if request.nodes is not None: + output["nodes"] = [ + marshal_NodePrivateNetworkDetails(item, defaults) for item in request.nodes + ] + + return output + + def marshal_EndpointSpec( request: EndpointSpec, defaults: ProfileDefaults, @@ -544,7 +615,7 @@ def marshal_EndpointSpec( OneOfPossibility( param="private_network", value=request.private_network, - marshal_func=marshal_EndpointSpecPrivateNetworkDetails, + marshal_func=marshal_PrivateNetworkDetails, ), ] ), diff --git a/scaleway/scaleway/datawarehouse/v1beta1/types.py b/scaleway/scaleway/datawarehouse/v1beta1/types.py index 3c0b165fa..20cb571ef 100644 --- a/scaleway/scaleway/datawarehouse/v1beta1/types.py +++ b/scaleway/scaleway/datawarehouse/v1beta1/types.py @@ -73,8 +73,26 @@ def __str__(self) -> str: @dataclass -class EndpointPrivateNetworkDetails: - private_network_id: str +class NodePrivateNetworkDetails: + node_name: str + """ + Name of the node. + """ + + shard: int + """ + The ClickHouse shard to which the node belongs to. + """ + + replica: int + """ + The ClickHouse replica to which the node belongs to. + """ + + ip_address: str + """ + Private static IP address of that node. + """ @dataclass @@ -89,12 +107,17 @@ class EndpointService: @dataclass -class EndpointSpecPrivateNetworkDetails: +class PrivateNetworkDetails: private_network_id: str """ UUID of the Private Network. """ + nodes: list[NodePrivateNetworkDetails] + """ + List of nodes belonging to this private network and their details. + """ + @dataclass class EndpointSpecPublicDetails: @@ -118,7 +141,7 @@ class Endpoint: List of services associated with the endpoint. """ - private_network: Optional[EndpointPrivateNetworkDetails] = None + private_network: Optional[PrivateNetworkDetails] = None public: Optional[EndpointPublicDetails] = None @@ -127,7 +150,7 @@ class Endpoint: class EndpointSpec: public: Optional[EndpointSpecPublicDetails] = None - private_network: Optional[EndpointSpecPrivateNetworkDetails] = None + private_network: Optional[PrivateNetworkDetails] = None @dataclass