Skip to content

Commit 4308d15

Browse files
authored
chore(vpc): generate SDK and documentation for ListSubnetOverlaps (#1695)
1 parent 59225ac commit 4308d15

8 files changed

Lines changed: 438 additions & 0 deletions

File tree

scaleway-async/scaleway_async/vpc/v2/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from .types import AclRuleProtocol
44
from .types import Action
55
from .types import ListPrivateNetworksRequestOrderBy
6+
from .types import ListSubnetOverlapsRequestOrderBy
67
from .types import ListSubnetsRequestOrderBy
78
from .types import ListVPCConnectorsRequestOrderBy
89
from .types import ListVPCsRequestOrderBy
@@ -13,6 +14,7 @@
1314
from .types import Route
1415
from .types import VPCConnectorPeerInfo
1516
from .types import AclRule
17+
from .types import ListSubnetOverlapsResponseSubnetOverlap
1618
from .types import VPCConnector
1719
from .types import VPC
1820
from .types import AddSubnetsRequest
@@ -38,6 +40,8 @@
3840
from .types import GetVPCRequest
3941
from .types import ListPrivateNetworksRequest
4042
from .types import ListPrivateNetworksResponse
43+
from .types import ListSubnetOverlapsRequest
44+
from .types import ListSubnetOverlapsResponse
4145
from .types import ListSubnetsRequest
4246
from .types import ListSubnetsResponse
4347
from .types import ListVPCConnectorsRequest
@@ -56,6 +60,7 @@
5660
"AclRuleProtocol",
5761
"Action",
5862
"ListPrivateNetworksRequestOrderBy",
63+
"ListSubnetOverlapsRequestOrderBy",
5964
"ListSubnetsRequestOrderBy",
6065
"ListVPCConnectorsRequestOrderBy",
6166
"ListVPCsRequestOrderBy",
@@ -66,6 +71,7 @@
6671
"Route",
6772
"VPCConnectorPeerInfo",
6873
"AclRule",
74+
"ListSubnetOverlapsResponseSubnetOverlap",
6975
"VPCConnector",
7076
"VPC",
7177
"AddSubnetsRequest",
@@ -91,6 +97,8 @@
9197
"GetVPCRequest",
9298
"ListPrivateNetworksRequest",
9399
"ListPrivateNetworksResponse",
100+
"ListSubnetOverlapsRequest",
101+
"ListSubnetOverlapsResponse",
94102
"ListSubnetsRequest",
95103
"ListSubnetsResponse",
96104
"ListVPCConnectorsRequest",

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

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from .types import (
1616
Action,
1717
ListPrivateNetworksRequestOrderBy,
18+
ListSubnetOverlapsRequestOrderBy,
1819
ListSubnetsRequestOrderBy,
1920
ListVPCConnectorsRequestOrderBy,
2021
ListVPCsRequestOrderBy,
@@ -30,6 +31,8 @@
3031
DeleteSubnetsResponse,
3132
GetAclResponse,
3233
ListPrivateNetworksResponse,
34+
ListSubnetOverlapsResponse,
35+
ListSubnetOverlapsResponseSubnetOverlap,
3336
ListSubnetsResponse,
3437
ListVPCConnectorsResponse,
3538
ListVPCsResponse,
@@ -54,6 +57,7 @@
5457
unmarshal_DeleteSubnetsResponse,
5558
unmarshal_GetAclResponse,
5659
unmarshal_ListPrivateNetworksResponse,
60+
unmarshal_ListSubnetOverlapsResponse,
5761
unmarshal_ListSubnetsResponse,
5862
unmarshal_ListVPCConnectorsResponse,
5963
unmarshal_ListVPCsResponse,
@@ -1509,3 +1513,90 @@ async def delete_vpc_connector(
15091513
)
15101514

15111515
self._throw_on_error(res)
1516+
1517+
async def list_subnet_overlaps(
1518+
self,
1519+
*,
1520+
vpc_connector_id: str,
1521+
region: Optional[ScwRegion] = None,
1522+
order_by: Optional[ListSubnetOverlapsRequestOrderBy] = None,
1523+
page: Optional[int] = None,
1524+
page_size: Optional[int] = None,
1525+
) -> ListSubnetOverlapsResponse:
1526+
"""
1527+
List subnet overlaps.
1528+
List subnet overlaps between the VPCConnector VPC and the target VPC or for a specific subnet if specified.
1529+
:param vpc_connector_id: VPCConnector ID.
1530+
:param region: Region to target. If none is passed will use default region from the config.
1531+
:param order_by: Sort order of the returned Subnet overlaps.
1532+
:param page: Page number to return, from the paginated results.
1533+
:param page_size: Maximum number of Subnet overlaps to return per page.
1534+
:return: :class:`ListSubnetOverlapsResponse <ListSubnetOverlapsResponse>`
1535+
1536+
Usage:
1537+
::
1538+
1539+
result = await api.list_subnet_overlaps(
1540+
vpc_connector_id="example",
1541+
)
1542+
"""
1543+
1544+
param_region = validate_path_param(
1545+
"region", region or self.client.default_region
1546+
)
1547+
param_vpc_connector_id = validate_path_param(
1548+
"vpc_connector_id", vpc_connector_id
1549+
)
1550+
1551+
res = self._request(
1552+
"GET",
1553+
f"/vpc/v2/regions/{param_region}/vpc-connectors/{param_vpc_connector_id}/subnet-overlaps",
1554+
params={
1555+
"order_by": order_by,
1556+
"page": page,
1557+
"page_size": page_size or self.client.default_page_size,
1558+
},
1559+
)
1560+
1561+
self._throw_on_error(res)
1562+
return unmarshal_ListSubnetOverlapsResponse(res.json())
1563+
1564+
async def list_subnet_overlaps_all(
1565+
self,
1566+
*,
1567+
vpc_connector_id: str,
1568+
region: Optional[ScwRegion] = None,
1569+
order_by: Optional[ListSubnetOverlapsRequestOrderBy] = None,
1570+
page: Optional[int] = None,
1571+
page_size: Optional[int] = None,
1572+
) -> list[ListSubnetOverlapsResponseSubnetOverlap]:
1573+
"""
1574+
List subnet overlaps.
1575+
List subnet overlaps between the VPCConnector VPC and the target VPC or for a specific subnet if specified.
1576+
:param vpc_connector_id: VPCConnector ID.
1577+
:param region: Region to target. If none is passed will use default region from the config.
1578+
:param order_by: Sort order of the returned Subnet overlaps.
1579+
:param page: Page number to return, from the paginated results.
1580+
:param page_size: Maximum number of Subnet overlaps to return per page.
1581+
:return: :class:`list[ListSubnetOverlapsResponseSubnetOverlap] <list[ListSubnetOverlapsResponseSubnetOverlap]>`
1582+
1583+
Usage:
1584+
::
1585+
1586+
result = await api.list_subnet_overlaps_all(
1587+
vpc_connector_id="example",
1588+
)
1589+
"""
1590+
1591+
return await fetch_all_pages_async(
1592+
type=ListSubnetOverlapsResponse,
1593+
key="subnet_overlaps",
1594+
fetcher=self.list_subnet_overlaps,
1595+
args={
1596+
"vpc_connector_id": vpc_connector_id,
1597+
"region": region,
1598+
"order_by": order_by,
1599+
"page": page,
1600+
"page_size": page_size,
1601+
},
1602+
)

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

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
AclRule,
2020
GetAclResponse,
2121
ListPrivateNetworksResponse,
22+
ListSubnetOverlapsResponseSubnetOverlap,
23+
ListSubnetOverlapsResponse,
2224
ListSubnetsResponse,
2325
ListVPCConnectorsResponse,
2426
ListVPCsResponse,
@@ -608,6 +610,70 @@ def unmarshal_ListPrivateNetworksResponse(data: Any) -> ListPrivateNetworksRespo
608610
return ListPrivateNetworksResponse(**args)
609611

610612

613+
def unmarshal_ListSubnetOverlapsResponseSubnetOverlap(
614+
data: Any,
615+
) -> ListSubnetOverlapsResponseSubnetOverlap:
616+
if not isinstance(data, dict):
617+
raise TypeError(
618+
"Unmarshalling the type 'ListSubnetOverlapsResponseSubnetOverlap' failed as data isn't a dictionary."
619+
)
620+
621+
args: dict[str, Any] = {}
622+
623+
field = data.get("subnet_id", None)
624+
if field is not None:
625+
args["subnet_id"] = field
626+
else:
627+
args["subnet_id"] = None
628+
629+
field = data.get("subnet", None)
630+
if field is not None:
631+
args["subnet"] = field
632+
else:
633+
args["subnet"] = None
634+
635+
field = data.get("target_subnet_id", None)
636+
if field is not None:
637+
args["target_subnet_id"] = field
638+
else:
639+
args["target_subnet_id"] = None
640+
641+
field = data.get("target_subnet", None)
642+
if field is not None:
643+
args["target_subnet"] = field
644+
else:
645+
args["target_subnet"] = None
646+
647+
return ListSubnetOverlapsResponseSubnetOverlap(**args)
648+
649+
650+
def unmarshal_ListSubnetOverlapsResponse(data: Any) -> ListSubnetOverlapsResponse:
651+
if not isinstance(data, dict):
652+
raise TypeError(
653+
"Unmarshalling the type 'ListSubnetOverlapsResponse' failed as data isn't a dictionary."
654+
)
655+
656+
args: dict[str, Any] = {}
657+
658+
field = data.get("subnet_overlaps", None)
659+
if field is not None:
660+
args["subnet_overlaps"] = (
661+
[unmarshal_ListSubnetOverlapsResponseSubnetOverlap(v) for v in field]
662+
if field is not None
663+
else None
664+
)
665+
else:
666+
args["subnet_overlaps"] = None
667+
668+
field = data.get("total_count", None)
669+
if field is not None:
670+
args["total_count"] = field
671+
else:
672+
args["total_count"] = None
673+
674+
return ListSubnetOverlapsResponse(**args)
675+
676+
611677
def unmarshal_ListSubnetsResponse(data: Any) -> ListSubnetsResponse:
612678
if not isinstance(data, dict):
613679
raise TypeError(

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

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,16 @@ def __str__(self) -> str:
4444
return str(self.value)
4545

4646

47+
class ListSubnetOverlapsRequestOrderBy(str, Enum, metaclass=StrEnumMeta):
48+
SUBNET_ASC = "subnet_asc"
49+
SUBNET_DESC = "subnet_desc"
50+
TARGET_SUBNET_ASC = "target_subnet_asc"
51+
TARGET_SUBNET_DESC = "target_subnet_desc"
52+
53+
def __str__(self) -> str:
54+
return str(self.value)
55+
56+
4757
class ListSubnetsRequestOrderBy(str, Enum, metaclass=StrEnumMeta):
4858
CREATED_AT_ASC = "created_at_asc"
4959
CREATED_AT_DESC = "created_at_desc"
@@ -318,6 +328,14 @@ class AclRule:
318328
"""
319329

320330

331+
@dataclass
332+
class ListSubnetOverlapsResponseSubnetOverlap:
333+
subnet_id: str
334+
subnet: str
335+
target_subnet_id: str
336+
target_subnet: str
337+
338+
321339
@dataclass
322340
class VPCConnector:
323341
id: str
@@ -860,6 +878,42 @@ class ListPrivateNetworksResponse:
860878
total_count: int
861879

862880

881+
@dataclass
882+
class ListSubnetOverlapsRequest:
883+
vpc_connector_id: str
884+
"""
885+
VPCConnector ID.
886+
"""
887+
888+
region: Optional[ScwRegion] = None
889+
"""
890+
Region to target. If none is passed will use default region from the config.
891+
"""
892+
893+
order_by: Optional[ListSubnetOverlapsRequestOrderBy] = (
894+
ListSubnetOverlapsRequestOrderBy.SUBNET_ASC
895+
)
896+
"""
897+
Sort order of the returned Subnet overlaps.
898+
"""
899+
900+
page: Optional[int] = 0
901+
"""
902+
Page number to return, from the paginated results.
903+
"""
904+
905+
page_size: Optional[int] = 0
906+
"""
907+
Maximum number of Subnet overlaps to return per page.
908+
"""
909+
910+
911+
@dataclass
912+
class ListSubnetOverlapsResponse:
913+
subnet_overlaps: list[ListSubnetOverlapsResponseSubnetOverlap]
914+
total_count: int
915+
916+
863917
@dataclass
864918
class ListSubnetsRequest:
865919
region: Optional[ScwRegion] = None

scaleway/scaleway/vpc/v2/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from .types import AclRuleProtocol
44
from .types import Action
55
from .types import ListPrivateNetworksRequestOrderBy
6+
from .types import ListSubnetOverlapsRequestOrderBy
67
from .types import ListSubnetsRequestOrderBy
78
from .types import ListVPCConnectorsRequestOrderBy
89
from .types import ListVPCsRequestOrderBy
@@ -13,6 +14,7 @@
1314
from .types import Route
1415
from .types import VPCConnectorPeerInfo
1516
from .types import AclRule
17+
from .types import ListSubnetOverlapsResponseSubnetOverlap
1618
from .types import VPCConnector
1719
from .types import VPC
1820
from .types import AddSubnetsRequest
@@ -38,6 +40,8 @@
3840
from .types import GetVPCRequest
3941
from .types import ListPrivateNetworksRequest
4042
from .types import ListPrivateNetworksResponse
43+
from .types import ListSubnetOverlapsRequest
44+
from .types import ListSubnetOverlapsResponse
4145
from .types import ListSubnetsRequest
4246
from .types import ListSubnetsResponse
4347
from .types import ListVPCConnectorsRequest
@@ -56,6 +60,7 @@
5660
"AclRuleProtocol",
5761
"Action",
5862
"ListPrivateNetworksRequestOrderBy",
63+
"ListSubnetOverlapsRequestOrderBy",
5964
"ListSubnetsRequestOrderBy",
6065
"ListVPCConnectorsRequestOrderBy",
6166
"ListVPCsRequestOrderBy",
@@ -66,6 +71,7 @@
6671
"Route",
6772
"VPCConnectorPeerInfo",
6873
"AclRule",
74+
"ListSubnetOverlapsResponseSubnetOverlap",
6975
"VPCConnector",
7076
"VPC",
7177
"AddSubnetsRequest",
@@ -91,6 +97,8 @@
9197
"GetVPCRequest",
9298
"ListPrivateNetworksRequest",
9399
"ListPrivateNetworksResponse",
100+
"ListSubnetOverlapsRequest",
101+
"ListSubnetOverlapsResponse",
94102
"ListSubnetsRequest",
95103
"ListSubnetsResponse",
96104
"ListVPCConnectorsRequest",

0 commit comments

Comments
 (0)