Skip to content

Commit e8bee04

Browse files
authored
Merge branch 'main' into v1.5563.0
2 parents 687f242 + 8bf653e commit e8bee04

File tree

36 files changed

+2864
-112
lines changed

36 files changed

+2864
-112
lines changed

scaleway-async/scaleway_async/baremetal/v1/marshalling.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -894,12 +894,6 @@ def unmarshal_ServerInstall(data: Any) -> ServerInstall:
894894
if field is not None:
895895
args["service_url"] = field
896896

897-
field = data.get("partitioning_schema", None)
898-
if field is not None:
899-
args["partitioning_schema"] = unmarshal_Schema(field)
900-
else:
901-
args["partitioning_schema"] = None
902-
903897
return ServerInstall(**args)
904898

905899

@@ -1525,11 +1519,6 @@ def marshal_CreateServerRequestInstall(
15251519
if request.service_password is not None:
15261520
output["service_password"] = request.service_password
15271521

1528-
if request.partitioning_schema is not None:
1529-
output["partitioning_schema"] = marshal_Schema(
1530-
request.partitioning_schema, defaults
1531-
)
1532-
15331522
return output
15341523

15351524

@@ -1603,11 +1592,6 @@ def marshal_InstallServerRequest(
16031592
if request.service_password is not None:
16041593
output["service_password"] = request.service_password
16051594

1606-
if request.partitioning_schema is not None:
1607-
output["partitioning_schema"] = marshal_Schema(
1608-
request.partitioning_schema, defaults
1609-
)
1610-
16111595
return output
16121596

16131597

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# This file was automatically generated. DO NOT EDIT.
2+
# If you have any remark or suggestion do not hesitate to open an issue.
3+
from .types import ListServerPrivateNetworksRequestOrderBy
4+
from .types import ServerPrivateNetworkStatus
5+
from .content import SERVER_PRIVATE_NETWORK_TRANSIENT_STATUSES
6+
from .types import ServerPrivateNetwork
7+
from .types import ListServerPrivateNetworksResponse
8+
from .types import PrivateNetworkApiAddServerPrivateNetworkRequest
9+
from .types import PrivateNetworkApiDeleteServerPrivateNetworkRequest
10+
from .types import PrivateNetworkApiListServerPrivateNetworksRequest
11+
from .types import PrivateNetworkApiSetServerPrivateNetworksRequest
12+
from .types import SetServerPrivateNetworksResponse
13+
from .api import BaremetalV3PrivateNetworkAPI
14+
15+
__all__ = [
16+
"ListServerPrivateNetworksRequestOrderBy",
17+
"ServerPrivateNetworkStatus",
18+
"SERVER_PRIVATE_NETWORK_TRANSIENT_STATUSES",
19+
"ServerPrivateNetwork",
20+
"ListServerPrivateNetworksResponse",
21+
"PrivateNetworkApiAddServerPrivateNetworkRequest",
22+
"PrivateNetworkApiDeleteServerPrivateNetworkRequest",
23+
"PrivateNetworkApiListServerPrivateNetworksRequest",
24+
"PrivateNetworkApiSetServerPrivateNetworksRequest",
25+
"SetServerPrivateNetworksResponse",
26+
"BaremetalV3PrivateNetworkAPI",
27+
]
Lines changed: 262 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,262 @@
1+
# This file was automatically generated. DO NOT EDIT.
2+
# If you have any remark or suggestion do not hesitate to open an issue.
3+
4+
from typing import Dict, List, Optional
5+
6+
from scaleway_core.api import API
7+
from scaleway_core.bridge import (
8+
Zone,
9+
)
10+
from scaleway_core.utils import (
11+
validate_path_param,
12+
fetch_all_pages_async,
13+
)
14+
from .types import (
15+
ListServerPrivateNetworksRequestOrderBy,
16+
ListServerPrivateNetworksResponse,
17+
PrivateNetworkApiAddServerPrivateNetworkRequest,
18+
PrivateNetworkApiSetServerPrivateNetworksRequest,
19+
ServerPrivateNetwork,
20+
SetServerPrivateNetworksResponse,
21+
)
22+
from .marshalling import (
23+
unmarshal_ServerPrivateNetwork,
24+
unmarshal_ListServerPrivateNetworksResponse,
25+
unmarshal_SetServerPrivateNetworksResponse,
26+
marshal_PrivateNetworkApiAddServerPrivateNetworkRequest,
27+
marshal_PrivateNetworkApiSetServerPrivateNetworksRequest,
28+
)
29+
30+
31+
class BaremetalV3PrivateNetworkAPI(API):
32+
"""
33+
Elastic Metal - Private Networks API.
34+
"""
35+
36+
async def add_server_private_network(
37+
self,
38+
*,
39+
server_id: str,
40+
private_network_id: str,
41+
zone: Optional[Zone] = None,
42+
ipam_ip_ids: Optional[List[str]] = None,
43+
) -> ServerPrivateNetwork:
44+
"""
45+
Add a server to a Private Network.
46+
Add an Elastic Metal server to a Private Network.
47+
:param server_id: UUID of the server.
48+
:param private_network_id: UUID of the Private Network.
49+
:param zone: Zone to target. If none is passed will use default zone from the config.
50+
:param ipam_ip_ids: IPAM IDs of an IPs to attach to the server.
51+
:return: :class:`ServerPrivateNetwork <ServerPrivateNetwork>`
52+
53+
Usage:
54+
::
55+
56+
result = await api.add_server_private_network(
57+
server_id="example",
58+
private_network_id="example",
59+
)
60+
"""
61+
62+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
63+
param_server_id = validate_path_param("server_id", server_id)
64+
65+
res = self._request(
66+
"POST",
67+
f"/baremetal/v3/zones/{param_zone}/servers/{param_server_id}/private-networks",
68+
body=marshal_PrivateNetworkApiAddServerPrivateNetworkRequest(
69+
PrivateNetworkApiAddServerPrivateNetworkRequest(
70+
server_id=server_id,
71+
private_network_id=private_network_id,
72+
zone=zone,
73+
ipam_ip_ids=ipam_ip_ids,
74+
),
75+
self.client,
76+
),
77+
)
78+
79+
self._throw_on_error(res)
80+
return unmarshal_ServerPrivateNetwork(res.json())
81+
82+
async def set_server_private_networks(
83+
self,
84+
*,
85+
server_id: str,
86+
per_private_network_ipam_ip_ids: Dict[str, List[str]],
87+
zone: Optional[Zone] = None,
88+
) -> SetServerPrivateNetworksResponse:
89+
"""
90+
Set multiple Private Networks on a server.
91+
Configure multiple Private Networks on an Elastic Metal server.
92+
:param server_id: UUID of the server.
93+
:param per_private_network_ipam_ip_ids: Object where the keys are the UUIDs of Private Networks and the values are arrays of IPAM IDs representing the IPs to assign to this Elastic Metal server on the Private Network. If the array supplied for a Private Network is empty, the next available IP from the Private Network's CIDR block will automatically be used for attachment.
94+
:param zone: Zone to target. If none is passed will use default zone from the config.
95+
:return: :class:`SetServerPrivateNetworksResponse <SetServerPrivateNetworksResponse>`
96+
97+
Usage:
98+
::
99+
100+
result = await api.set_server_private_networks(
101+
server_id="example",
102+
per_private_network_ipam_ip_ids={},
103+
)
104+
"""
105+
106+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
107+
param_server_id = validate_path_param("server_id", server_id)
108+
109+
res = self._request(
110+
"PUT",
111+
f"/baremetal/v3/zones/{param_zone}/servers/{param_server_id}/private-networks",
112+
body=marshal_PrivateNetworkApiSetServerPrivateNetworksRequest(
113+
PrivateNetworkApiSetServerPrivateNetworksRequest(
114+
server_id=server_id,
115+
per_private_network_ipam_ip_ids=per_private_network_ipam_ip_ids,
116+
zone=zone,
117+
),
118+
self.client,
119+
),
120+
)
121+
122+
self._throw_on_error(res)
123+
return unmarshal_SetServerPrivateNetworksResponse(res.json())
124+
125+
async def list_server_private_networks(
126+
self,
127+
*,
128+
zone: Optional[Zone] = None,
129+
order_by: Optional[ListServerPrivateNetworksRequestOrderBy] = None,
130+
page: Optional[int] = None,
131+
page_size: Optional[int] = None,
132+
server_id: Optional[str] = None,
133+
private_network_id: Optional[str] = None,
134+
organization_id: Optional[str] = None,
135+
project_id: Optional[str] = None,
136+
ipam_ip_ids: Optional[List[str]] = None,
137+
) -> ListServerPrivateNetworksResponse:
138+
"""
139+
List the Private Networks of a server.
140+
List the Private Networks of an Elastic Metal server.
141+
:param zone: Zone to target. If none is passed will use default zone from the config.
142+
:param order_by: Sort order for the returned Private Networks.
143+
:param page: Page number for the returned Private Networks.
144+
:param page_size: Maximum number of Private Networks per page.
145+
:param server_id: Filter Private Networks by server UUID.
146+
:param private_network_id: Filter Private Networks by Private Network UUID.
147+
:param organization_id: Filter Private Networks by organization UUID.
148+
:param project_id: Filter Private Networks by project UUID.
149+
:param ipam_ip_ids: Filter Private Networks by IPAM IP UUIDs.
150+
:return: :class:`ListServerPrivateNetworksResponse <ListServerPrivateNetworksResponse>`
151+
152+
Usage:
153+
::
154+
155+
result = await api.list_server_private_networks()
156+
"""
157+
158+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
159+
160+
res = self._request(
161+
"GET",
162+
f"/baremetal/v3/zones/{param_zone}/server-private-networks",
163+
params={
164+
"ipam_ip_ids": ipam_ip_ids,
165+
"order_by": order_by,
166+
"organization_id": organization_id
167+
or self.client.default_organization_id,
168+
"page": page,
169+
"page_size": page_size or self.client.default_page_size,
170+
"private_network_id": private_network_id,
171+
"project_id": project_id or self.client.default_project_id,
172+
"server_id": server_id,
173+
},
174+
)
175+
176+
self._throw_on_error(res)
177+
return unmarshal_ListServerPrivateNetworksResponse(res.json())
178+
179+
async def list_server_private_networks_all(
180+
self,
181+
*,
182+
zone: Optional[Zone] = None,
183+
order_by: Optional[ListServerPrivateNetworksRequestOrderBy] = None,
184+
page: Optional[int] = None,
185+
page_size: Optional[int] = None,
186+
server_id: Optional[str] = None,
187+
private_network_id: Optional[str] = None,
188+
organization_id: Optional[str] = None,
189+
project_id: Optional[str] = None,
190+
ipam_ip_ids: Optional[List[str]] = None,
191+
) -> List[ServerPrivateNetwork]:
192+
"""
193+
List the Private Networks of a server.
194+
List the Private Networks of an Elastic Metal server.
195+
:param zone: Zone to target. If none is passed will use default zone from the config.
196+
:param order_by: Sort order for the returned Private Networks.
197+
:param page: Page number for the returned Private Networks.
198+
:param page_size: Maximum number of Private Networks per page.
199+
:param server_id: Filter Private Networks by server UUID.
200+
:param private_network_id: Filter Private Networks by Private Network UUID.
201+
:param organization_id: Filter Private Networks by organization UUID.
202+
:param project_id: Filter Private Networks by project UUID.
203+
:param ipam_ip_ids: Filter Private Networks by IPAM IP UUIDs.
204+
:return: :class:`List[ServerPrivateNetwork] <List[ServerPrivateNetwork]>`
205+
206+
Usage:
207+
::
208+
209+
result = await api.list_server_private_networks_all()
210+
"""
211+
212+
return await fetch_all_pages_async(
213+
type=ListServerPrivateNetworksResponse,
214+
key="server_private_networks",
215+
fetcher=self.list_server_private_networks,
216+
args={
217+
"zone": zone,
218+
"order_by": order_by,
219+
"page": page,
220+
"page_size": page_size,
221+
"server_id": server_id,
222+
"private_network_id": private_network_id,
223+
"organization_id": organization_id,
224+
"project_id": project_id,
225+
"ipam_ip_ids": ipam_ip_ids,
226+
},
227+
)
228+
229+
async def delete_server_private_network(
230+
self,
231+
*,
232+
server_id: str,
233+
private_network_id: str,
234+
zone: Optional[Zone] = None,
235+
) -> None:
236+
"""
237+
Delete a Private Network.
238+
:param server_id: UUID of the server.
239+
:param private_network_id: UUID of the Private Network.
240+
:param zone: Zone to target. If none is passed will use default zone from the config.
241+
242+
Usage:
243+
::
244+
245+
result = await api.delete_server_private_network(
246+
server_id="example",
247+
private_network_id="example",
248+
)
249+
"""
250+
251+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
252+
param_server_id = validate_path_param("server_id", server_id)
253+
param_private_network_id = validate_path_param(
254+
"private_network_id", private_network_id
255+
)
256+
257+
res = self._request(
258+
"DELETE",
259+
f"/baremetal/v3/zones/{param_zone}/servers/{param_server_id}/private-networks/{param_private_network_id}",
260+
)
261+
262+
self._throw_on_error(res)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# This file was automatically generated. DO NOT EDIT.
2+
# If you have any remark or suggestion do not hesitate to open an issue.
3+
from typing import List
4+
5+
from .types import (
6+
ServerPrivateNetworkStatus,
7+
)
8+
9+
SERVER_PRIVATE_NETWORK_TRANSIENT_STATUSES: List[ServerPrivateNetworkStatus] = [
10+
ServerPrivateNetworkStatus.ATTACHING,
11+
ServerPrivateNetworkStatus.DETACHING,
12+
]
13+
"""
14+
Lists transient statutes of the enum :class:`ServerPrivateNetworkStatus <ServerPrivateNetworkStatus>`.
15+
"""

0 commit comments

Comments
 (0)