Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions scaleway-async/scaleway_async/kafka/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
from .types import VersionAvailableSettingStringProperty
from .types import EndpointSpecPrivateNetworkDetails
from .types import EndpointSpecPublicDetails
from .types import ClusterMonoAZDetails
from .types import ClusterMultiAZDetails
from .types import ClusterSetting
from .types import Endpoint
from .types import Volume
Expand Down Expand Up @@ -59,6 +61,8 @@
"VersionAvailableSettingStringProperty",
"EndpointSpecPrivateNetworkDetails",
"EndpointSpecPublicDetails",
"ClusterMonoAZDetails",
"ClusterMultiAZDetails",
"ClusterSetting",
"Endpoint",
"Volume",
Expand Down
14 changes: 12 additions & 2 deletions scaleway-async/scaleway_async/kafka/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
ListClustersRequestOrderBy,
ListUsersRequestOrderBy,
Cluster,
ClusterMonoAZDetails,
ClusterMultiAZDetails,
CreateClusterRequest,
CreateClusterRequestVolumeSpec,
CreateEndpointRequest,
Expand Down Expand Up @@ -382,30 +384,36 @@ async def create_cluster(
*,
version: str,
node_amount: int,
node_type: str,
region: Optional[ScwRegion] = None,
project_id: Optional[str] = None,
name: Optional[str] = None,
tags: Optional[list[str]] = None,
node_type: str,
volume: Optional[CreateClusterRequestVolumeSpec] = None,
endpoints: Optional[list[EndpointSpec]] = None,
user_name: Optional[str] = None,
password: Optional[str] = None,
multi_az: Optional[ClusterMultiAZDetails] = None,
mono_az: Optional[ClusterMonoAZDetails] = None,
) -> Cluster:
"""
Create a Kafka cluster.
Create a new Kafka cluster.
:param version: Version of Kafka.
:param node_amount: Number of nodes to use for the Kafka cluster.
:param node_type: Type of node to use for the Kafka cluster.
:param region: Region to target. If none is passed will use default region from the config.
:param project_id: The ID of the Project in which the Kafka cluster will be created.
:param name: Name of the Kafka cluster.
:param tags: Tags to apply to the Kafka cluster.
:param node_type: Type of node to use for the Kafka cluster.
:param volume: Kafka volume information.
:param endpoints: One or multiple EndpointSpec used to expose your Kafka cluster.
:param user_name: Username for the kafka user.
:param password: Password for the kafka user.
:param multi_az: MultiAZ tell the cluster is deployed on multiple availability zones in the region.
One-Of ('availability'): at most one of 'multi_az', 'mono_az' could be set.
:param mono_az: MonoAZ details.
One-Of ('availability'): at most one of 'multi_az', 'mono_az' could be set.
:return: :class:`Cluster <Cluster>`

Usage:
Expand Down Expand Up @@ -438,6 +446,8 @@ async def create_cluster(
endpoints=endpoints,
user_name=user_name,
password=password,
multi_az=multi_az,
mono_az=mono_az,
),
self.client,
),
Expand Down
79 changes: 79 additions & 0 deletions scaleway-async/scaleway_async/kafka/v1alpha1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
EndpointPrivateNetworkDetails,
EndpointPublicDetails,
Endpoint,
ClusterMonoAZDetails,
ClusterMultiAZDetails,
ClusterSetting,
Volume,
Cluster,
Expand Down Expand Up @@ -112,6 +114,34 @@ def unmarshal_Endpoint(data: Any) -> Endpoint:
return Endpoint(**args)


def unmarshal_ClusterMonoAZDetails(data: Any) -> ClusterMonoAZDetails:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'ClusterMonoAZDetails' failed as data isn't a dictionary."
)

args: dict[str, Any] = {}

field = data.get("zone", None)
if field is not None:
args["zone"] = field
else:
args["zone"] = None

return ClusterMonoAZDetails(**args)


def unmarshal_ClusterMultiAZDetails(data: Any) -> ClusterMultiAZDetails:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'ClusterMultiAZDetails' failed as data isn't a dictionary."
)

args: dict[str, Any] = {}

return ClusterMultiAZDetails(**args)


def unmarshal_ClusterSetting(data: Any) -> ClusterSetting:
if not isinstance(data, dict):
raise TypeError(
Expand Down Expand Up @@ -278,6 +308,18 @@ def unmarshal_Cluster(data: Any) -> Cluster:
else:
args["updated_at"] = None

field = data.get("multi_az", None)
if field is not None:
args["multi_az"] = unmarshal_ClusterMultiAZDetails(field)
else:
args["multi_az"] = None

field = data.get("mono_az", None)
if field is not None:
args["mono_az"] = unmarshal_ClusterMonoAZDetails(field)
else:
args["mono_az"] = None

return Cluster(**args)


Expand Down Expand Up @@ -735,6 +777,27 @@ def marshal_EndpointSpecPublicDetails(
return output


def marshal_ClusterMonoAZDetails(
request: ClusterMonoAZDetails,
defaults: ProfileDefaults,
) -> dict[str, Any]:
output: dict[str, Any] = {}

if request.zone is not None:
output["zone"] = request.zone

return output


def marshal_ClusterMultiAZDetails(
request: ClusterMultiAZDetails,
defaults: ProfileDefaults,
) -> dict[str, Any]:
output: dict[str, Any] = {}

return output


def marshal_CreateClusterRequestVolumeSpec(
request: CreateClusterRequestVolumeSpec,
defaults: ProfileDefaults,
Expand Down Expand Up @@ -780,6 +843,22 @@ def marshal_CreateClusterRequest(
defaults: ProfileDefaults,
) -> dict[str, Any]:
output: dict[str, Any] = {}
output.update(
resolve_one_of(
[
OneOfPossibility(
param="multi_az",
value=request.multi_az,
marshal_func=marshal_ClusterMultiAZDetails,
),
OneOfPossibility(
param="mono_az",
value=request.mono_az,
marshal_func=marshal_ClusterMonoAZDetails,
),
]
),
)

if request.version is not None:
output["version"] = request.version
Expand Down
30 changes: 30 additions & 0 deletions scaleway-async/scaleway_async/kafka/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

from scaleway_core.bridge import (
Region as ScwRegion,
Zone as ScwZone,
)
from scaleway_core.utils import (
StrEnumMeta,
Expand Down Expand Up @@ -129,6 +130,27 @@ class EndpointSpecPublicDetails:
pass


@dataclass
class ClusterMonoAZDetails:
"""
MonoAZ details.
"""

zone: Optional[ScwZone] = None
"""
Zone is the zone on which the cluster nodes are deployed.
"""


@dataclass
class ClusterMultiAZDetails:
"""
MultiAZ details.
"""

pass


@dataclass
class ClusterSetting:
name: str
Expand Down Expand Up @@ -331,6 +353,10 @@ class Cluster:
Last update date (must follow the ISO 8601 format).
"""

multi_az: Optional[ClusterMultiAZDetails] = None

mono_az: Optional[ClusterMonoAZDetails] = None


@dataclass
class NodeType:
Expand Down Expand Up @@ -460,6 +486,10 @@ class CreateClusterRequest:
Password for the kafka user.
"""

multi_az: Optional[ClusterMultiAZDetails] = None

mono_az: Optional[ClusterMonoAZDetails] = None


@dataclass
class CreateEndpointRequest:
Expand Down
4 changes: 4 additions & 0 deletions scaleway/scaleway/kafka/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
from .types import VersionAvailableSettingStringProperty
from .types import EndpointSpecPrivateNetworkDetails
from .types import EndpointSpecPublicDetails
from .types import ClusterMonoAZDetails
from .types import ClusterMultiAZDetails
from .types import ClusterSetting
from .types import Endpoint
from .types import Volume
Expand Down Expand Up @@ -59,6 +61,8 @@
"VersionAvailableSettingStringProperty",
"EndpointSpecPrivateNetworkDetails",
"EndpointSpecPublicDetails",
"ClusterMonoAZDetails",
"ClusterMultiAZDetails",
"ClusterSetting",
"Endpoint",
"Volume",
Expand Down
14 changes: 12 additions & 2 deletions scaleway/scaleway/kafka/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
ListClustersRequestOrderBy,
ListUsersRequestOrderBy,
Cluster,
ClusterMonoAZDetails,
ClusterMultiAZDetails,
CreateClusterRequest,
CreateClusterRequestVolumeSpec,
CreateEndpointRequest,
Expand Down Expand Up @@ -382,30 +384,36 @@ def create_cluster(
*,
version: str,
node_amount: int,
node_type: str,
region: Optional[ScwRegion] = None,
project_id: Optional[str] = None,
name: Optional[str] = None,
tags: Optional[list[str]] = None,
node_type: str,
volume: Optional[CreateClusterRequestVolumeSpec] = None,
endpoints: Optional[list[EndpointSpec]] = None,
user_name: Optional[str] = None,
password: Optional[str] = None,
multi_az: Optional[ClusterMultiAZDetails] = None,
mono_az: Optional[ClusterMonoAZDetails] = None,
) -> Cluster:
"""
Create a Kafka cluster.
Create a new Kafka cluster.
:param version: Version of Kafka.
:param node_amount: Number of nodes to use for the Kafka cluster.
:param node_type: Type of node to use for the Kafka cluster.
:param region: Region to target. If none is passed will use default region from the config.
:param project_id: The ID of the Project in which the Kafka cluster will be created.
:param name: Name of the Kafka cluster.
:param tags: Tags to apply to the Kafka cluster.
:param node_type: Type of node to use for the Kafka cluster.
:param volume: Kafka volume information.
:param endpoints: One or multiple EndpointSpec used to expose your Kafka cluster.
:param user_name: Username for the kafka user.
:param password: Password for the kafka user.
:param multi_az: MultiAZ tell the cluster is deployed on multiple availability zones in the region.
One-Of ('availability'): at most one of 'multi_az', 'mono_az' could be set.
:param mono_az: MonoAZ details.
One-Of ('availability'): at most one of 'multi_az', 'mono_az' could be set.
:return: :class:`Cluster <Cluster>`

Usage:
Expand Down Expand Up @@ -438,6 +446,8 @@ def create_cluster(
endpoints=endpoints,
user_name=user_name,
password=password,
multi_az=multi_az,
mono_az=mono_az,
),
self.client,
),
Expand Down
Loading
Loading