Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit affa47f

Browse files
scaleway-botLaure-di
andauthoredMay 15, 2025··
feat(vpc): add support default_route_propagation_enabled (scaleway#988)
Co-authored-by: Laure-di <[email protected]>
1 parent d55cac2 commit affa47f

File tree

6 files changed

+76
-2
lines changed

6 files changed

+76
-2
lines changed
 

‎scaleway-async/scaleway_async/vpc/v2/api.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ async def list_private_networks_all(
462462
async def create_private_network(
463463
self,
464464
*,
465+
default_route_propagation_enabled: bool,
465466
region: Optional[ScwRegion] = None,
466467
name: Optional[str] = None,
467468
project_id: Optional[str] = None,
@@ -472,6 +473,7 @@ async def create_private_network(
472473
"""
473474
Create a Private Network.
474475
Create a new Private Network. Once created, you can attach Scaleway resources which are in the same region.
476+
:param default_route_propagation_enabled: Defines whether default v4 and v6 routes are propagated for this Private Network.
475477
:param region: Region to target. If none is passed will use default region from the config.
476478
:param name: Name for the Private Network.
477479
:param project_id: Scaleway Project in which to create the Private Network.
@@ -483,7 +485,9 @@ async def create_private_network(
483485
Usage:
484486
::
485487
486-
result = await api.create_private_network()
488+
result = await api.create_private_network(
489+
default_route_propagation_enabled=False,
490+
)
487491
"""
488492

489493
param_region = validate_path_param(
@@ -495,6 +499,7 @@ async def create_private_network(
495499
f"/vpc/v2/regions/{param_region}/private-networks",
496500
body=marshal_CreatePrivateNetworkRequest(
497501
CreatePrivateNetworkRequest(
502+
default_route_propagation_enabled=default_route_propagation_enabled,
498503
region=region,
499504
name=name or random_name(prefix="pn"),
500505
project_id=project_id,
@@ -552,6 +557,7 @@ async def update_private_network(
552557
region: Optional[ScwRegion] = None,
553558
name: Optional[str] = None,
554559
tags: Optional[List[str]] = None,
560+
default_route_propagation_enabled: Optional[bool] = None,
555561
) -> PrivateNetwork:
556562
"""
557563
Update Private Network.
@@ -560,6 +566,7 @@ async def update_private_network(
560566
:param region: Region to target. If none is passed will use default region from the config.
561567
:param name: Name for the Private Network.
562568
:param tags: Tags for the Private Network.
569+
:param default_route_propagation_enabled: Defines whether default v4 and v6 routes are propagated for this Private Network.
563570
:return: :class:`PrivateNetwork <PrivateNetwork>`
564571
565572
Usage:
@@ -586,6 +593,7 @@ async def update_private_network(
586593
region=region,
587594
name=name,
588595
tags=tags,
596+
default_route_propagation_enabled=default_route_propagation_enabled,
589597
),
590598
self.client,
591599
),

‎scaleway-async/scaleway_async/vpc/v2/marshalling.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ def unmarshal_PrivateNetwork(data: Any) -> PrivateNetwork:
119119
if field is not None:
120120
args["dhcp_enabled"] = field
121121

122+
field = data.get("default_route_propagation_enabled", None)
123+
if field is not None:
124+
args["default_route_propagation_enabled"] = field
125+
122126
field = data.get("created_at", None)
123127
if field is not None:
124128
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
@@ -456,6 +460,11 @@ def marshal_CreatePrivateNetworkRequest(
456460
) -> Dict[str, Any]:
457461
output: Dict[str, Any] = {}
458462

463+
if request.default_route_propagation_enabled is not None:
464+
output["default_route_propagation_enabled"] = (
465+
request.default_route_propagation_enabled
466+
)
467+
459468
if request.name is not None:
460469
output["name"] = request.name
461470

@@ -600,6 +609,11 @@ def marshal_UpdatePrivateNetworkRequest(
600609
if request.tags is not None:
601610
output["tags"] = request.tags
602611

612+
if request.default_route_propagation_enabled is not None:
613+
output["default_route_propagation_enabled"] = (
614+
request.default_route_propagation_enabled
615+
)
616+
603617
return output
604618

605619

‎scaleway-async/scaleway_async/vpc/v2/types.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ class PrivateNetwork:
147147
Defines whether managed DHCP is enabled for this Private Network.
148148
"""
149149

150+
default_route_propagation_enabled: bool
151+
"""
152+
Defines whether default v4 and v6 routes are propagated for this Private Network.
153+
"""
154+
150155
created_at: Optional[datetime]
151156
"""
152157
Date the Private Network was created.
@@ -347,6 +352,11 @@ class AddSubnetsResponse:
347352

348353
@dataclass
349354
class CreatePrivateNetworkRequest:
355+
default_route_propagation_enabled: bool
356+
"""
357+
Defines whether default v4 and v6 routes are propagated for this Private Network.
358+
"""
359+
350360
region: Optional[ScwRegion]
351361
"""
352362
Region to target. If none is passed will use default region from the config.
@@ -828,6 +838,11 @@ class UpdatePrivateNetworkRequest:
828838
Tags for the Private Network.
829839
"""
830840

841+
default_route_propagation_enabled: Optional[bool]
842+
"""
843+
Defines whether default v4 and v6 routes are propagated for this Private Network.
844+
"""
845+
831846

832847
@dataclass
833848
class UpdateRouteRequest:

‎scaleway/scaleway/vpc/v2/api.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ def list_private_networks_all(
462462
def create_private_network(
463463
self,
464464
*,
465+
default_route_propagation_enabled: bool,
465466
region: Optional[ScwRegion] = None,
466467
name: Optional[str] = None,
467468
project_id: Optional[str] = None,
@@ -472,6 +473,7 @@ def create_private_network(
472473
"""
473474
Create a Private Network.
474475
Create a new Private Network. Once created, you can attach Scaleway resources which are in the same region.
476+
:param default_route_propagation_enabled: Defines whether default v4 and v6 routes are propagated for this Private Network.
475477
:param region: Region to target. If none is passed will use default region from the config.
476478
:param name: Name for the Private Network.
477479
:param project_id: Scaleway Project in which to create the Private Network.
@@ -483,7 +485,9 @@ def create_private_network(
483485
Usage:
484486
::
485487
486-
result = api.create_private_network()
488+
result = api.create_private_network(
489+
default_route_propagation_enabled=False,
490+
)
487491
"""
488492

489493
param_region = validate_path_param(
@@ -495,6 +499,7 @@ def create_private_network(
495499
f"/vpc/v2/regions/{param_region}/private-networks",
496500
body=marshal_CreatePrivateNetworkRequest(
497501
CreatePrivateNetworkRequest(
502+
default_route_propagation_enabled=default_route_propagation_enabled,
498503
region=region,
499504
name=name or random_name(prefix="pn"),
500505
project_id=project_id,
@@ -552,6 +557,7 @@ def update_private_network(
552557
region: Optional[ScwRegion] = None,
553558
name: Optional[str] = None,
554559
tags: Optional[List[str]] = None,
560+
default_route_propagation_enabled: Optional[bool] = None,
555561
) -> PrivateNetwork:
556562
"""
557563
Update Private Network.
@@ -560,6 +566,7 @@ def update_private_network(
560566
:param region: Region to target. If none is passed will use default region from the config.
561567
:param name: Name for the Private Network.
562568
:param tags: Tags for the Private Network.
569+
:param default_route_propagation_enabled: Defines whether default v4 and v6 routes are propagated for this Private Network.
563570
:return: :class:`PrivateNetwork <PrivateNetwork>`
564571
565572
Usage:
@@ -586,6 +593,7 @@ def update_private_network(
586593
region=region,
587594
name=name,
588595
tags=tags,
596+
default_route_propagation_enabled=default_route_propagation_enabled,
589597
),
590598
self.client,
591599
),

‎scaleway/scaleway/vpc/v2/marshalling.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ def unmarshal_PrivateNetwork(data: Any) -> PrivateNetwork:
119119
if field is not None:
120120
args["dhcp_enabled"] = field
121121

122+
field = data.get("default_route_propagation_enabled", None)
123+
if field is not None:
124+
args["default_route_propagation_enabled"] = field
125+
122126
field = data.get("created_at", None)
123127
if field is not None:
124128
args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field
@@ -456,6 +460,11 @@ def marshal_CreatePrivateNetworkRequest(
456460
) -> Dict[str, Any]:
457461
output: Dict[str, Any] = {}
458462

463+
if request.default_route_propagation_enabled is not None:
464+
output["default_route_propagation_enabled"] = (
465+
request.default_route_propagation_enabled
466+
)
467+
459468
if request.name is not None:
460469
output["name"] = request.name
461470

@@ -600,6 +609,11 @@ def marshal_UpdatePrivateNetworkRequest(
600609
if request.tags is not None:
601610
output["tags"] = request.tags
602611

612+
if request.default_route_propagation_enabled is not None:
613+
output["default_route_propagation_enabled"] = (
614+
request.default_route_propagation_enabled
615+
)
616+
603617
return output
604618

605619

‎scaleway/scaleway/vpc/v2/types.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ class PrivateNetwork:
147147
Defines whether managed DHCP is enabled for this Private Network.
148148
"""
149149

150+
default_route_propagation_enabled: bool
151+
"""
152+
Defines whether default v4 and v6 routes are propagated for this Private Network.
153+
"""
154+
150155
created_at: Optional[datetime]
151156
"""
152157
Date the Private Network was created.
@@ -347,6 +352,11 @@ class AddSubnetsResponse:
347352

348353
@dataclass
349354
class CreatePrivateNetworkRequest:
355+
default_route_propagation_enabled: bool
356+
"""
357+
Defines whether default v4 and v6 routes are propagated for this Private Network.
358+
"""
359+
350360
region: Optional[ScwRegion]
351361
"""
352362
Region to target. If none is passed will use default region from the config.
@@ -828,6 +838,11 @@ class UpdatePrivateNetworkRequest:
828838
Tags for the Private Network.
829839
"""
830840

841+
default_route_propagation_enabled: Optional[bool]
842+
"""
843+
Defines whether default v4 and v6 routes are propagated for this Private Network.
844+
"""
845+
831846

832847
@dataclass
833848
class UpdateRouteRequest:

0 commit comments

Comments
 (0)
Please sign in to comment.