Skip to content

Commit 2159c38

Browse files
authored
feat(apple_silicon): add infos on server type (scaleway#526)
1 parent c5f6200 commit 2159c38

File tree

6 files changed

+148
-0
lines changed

6 files changed

+148
-0
lines changed

scaleway-async/scaleway_async/applesilicon/v1alpha1/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
from .types import OS
88
from .types import ServerTypeCPU
99
from .types import ServerTypeDisk
10+
from .types import ServerTypeGPU
1011
from .types import ServerTypeMemory
12+
from .types import ServerTypeNetwork
1113
from .types import ServerType
1214
from .types import Server
1315
from .types import CreateServerRequest
@@ -34,7 +36,9 @@
3436
"OS",
3537
"ServerTypeCPU",
3638
"ServerTypeDisk",
39+
"ServerTypeGPU",
3740
"ServerTypeMemory",
41+
"ServerTypeNetwork",
3842
"ServerType",
3943
"Server",
4044
"CreateServerRequest",

scaleway-async/scaleway_async/applesilicon/v1alpha1/marshalling.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
OS,
1010
ServerTypeCPU,
1111
ServerTypeDisk,
12+
ServerTypeGPU,
1213
ServerTypeMemory,
14+
ServerTypeNetwork,
1315
ServerType,
1416
Server,
1517
ListOSResponse,
@@ -84,6 +86,10 @@ def unmarshal_ServerTypeCPU(data: Any) -> ServerTypeCPU:
8486
if field is not None:
8587
args["core_count"] = field
8688

89+
field = data.get("frequency", None)
90+
if field is not None:
91+
args["frequency"] = field
92+
8793
return ServerTypeCPU(**args)
8894

8995

@@ -106,6 +112,21 @@ def unmarshal_ServerTypeDisk(data: Any) -> ServerTypeDisk:
106112
return ServerTypeDisk(**args)
107113

108114

115+
def unmarshal_ServerTypeGPU(data: Any) -> ServerTypeGPU:
116+
if not isinstance(data, dict):
117+
raise TypeError(
118+
"Unmarshalling the type 'ServerTypeGPU' failed as data isn't a dictionary."
119+
)
120+
121+
args: Dict[str, Any] = {}
122+
123+
field = data.get("count", None)
124+
if field is not None:
125+
args["count"] = field
126+
127+
return ServerTypeGPU(**args)
128+
129+
109130
def unmarshal_ServerTypeMemory(data: Any) -> ServerTypeMemory:
110131
if not isinstance(data, dict):
111132
raise TypeError(
@@ -125,6 +146,21 @@ def unmarshal_ServerTypeMemory(data: Any) -> ServerTypeMemory:
125146
return ServerTypeMemory(**args)
126147

127148

149+
def unmarshal_ServerTypeNetwork(data: Any) -> ServerTypeNetwork:
150+
if not isinstance(data, dict):
151+
raise TypeError(
152+
"Unmarshalling the type 'ServerTypeNetwork' failed as data isn't a dictionary."
153+
)
154+
155+
args: Dict[str, Any] = {}
156+
157+
field = data.get("public_bandwidth_bps", None)
158+
if field is not None:
159+
args["public_bandwidth_bps"] = field
160+
161+
return ServerTypeNetwork(**args)
162+
163+
128164
def unmarshal_ServerType(data: Any) -> ServerType:
129165
if not isinstance(data, dict):
130166
raise TypeError(
@@ -165,6 +201,18 @@ def unmarshal_ServerType(data: Any) -> ServerType:
165201
else:
166202
args["minimum_lease_duration"] = None
167203

204+
field = data.get("gpu", None)
205+
if field is not None:
206+
args["gpu"] = unmarshal_ServerTypeGPU(field)
207+
else:
208+
args["gpu"] = None
209+
210+
field = data.get("network", None)
211+
if field is not None:
212+
args["network"] = unmarshal_ServerTypeNetwork(field)
213+
else:
214+
args["network"] = None
215+
168216
field = data.get("default_os", None)
169217
if field is not None:
170218
args["default_os"] = unmarshal_OS(field)

scaleway-async/scaleway_async/applesilicon/v1alpha1/types.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ class ServerTypeCPU:
103103

104104
core_count: int
105105

106+
frequency: int
107+
106108

107109
@dataclass
108110
class ServerTypeDisk:
@@ -111,13 +113,23 @@ class ServerTypeDisk:
111113
type_: str
112114

113115

116+
@dataclass
117+
class ServerTypeGPU:
118+
count: int
119+
120+
114121
@dataclass
115122
class ServerTypeMemory:
116123
capacity: int
117124

118125
type_: str
119126

120127

128+
@dataclass
129+
class ServerTypeNetwork:
130+
public_bandwidth_bps: int
131+
132+
121133
@dataclass
122134
class ServerType:
123135
name: str
@@ -150,6 +162,16 @@ class ServerType:
150162
Minimum duration of the lease in seconds (example. 3.4s).
151163
"""
152164

165+
gpu: Optional[ServerTypeGPU]
166+
"""
167+
GPU description.
168+
"""
169+
170+
network: Optional[ServerTypeNetwork]
171+
"""
172+
Network description.
173+
"""
174+
153175
default_os: Optional[OS]
154176
"""
155177
The default OS for this server type.

scaleway/scaleway/applesilicon/v1alpha1/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
from .types import OS
88
from .types import ServerTypeCPU
99
from .types import ServerTypeDisk
10+
from .types import ServerTypeGPU
1011
from .types import ServerTypeMemory
12+
from .types import ServerTypeNetwork
1113
from .types import ServerType
1214
from .types import Server
1315
from .types import CreateServerRequest
@@ -34,7 +36,9 @@
3436
"OS",
3537
"ServerTypeCPU",
3638
"ServerTypeDisk",
39+
"ServerTypeGPU",
3740
"ServerTypeMemory",
41+
"ServerTypeNetwork",
3842
"ServerType",
3943
"Server",
4044
"CreateServerRequest",

scaleway/scaleway/applesilicon/v1alpha1/marshalling.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
OS,
1010
ServerTypeCPU,
1111
ServerTypeDisk,
12+
ServerTypeGPU,
1213
ServerTypeMemory,
14+
ServerTypeNetwork,
1315
ServerType,
1416
Server,
1517
ListOSResponse,
@@ -84,6 +86,10 @@ def unmarshal_ServerTypeCPU(data: Any) -> ServerTypeCPU:
8486
if field is not None:
8587
args["core_count"] = field
8688

89+
field = data.get("frequency", None)
90+
if field is not None:
91+
args["frequency"] = field
92+
8793
return ServerTypeCPU(**args)
8894

8995

@@ -106,6 +112,21 @@ def unmarshal_ServerTypeDisk(data: Any) -> ServerTypeDisk:
106112
return ServerTypeDisk(**args)
107113

108114

115+
def unmarshal_ServerTypeGPU(data: Any) -> ServerTypeGPU:
116+
if not isinstance(data, dict):
117+
raise TypeError(
118+
"Unmarshalling the type 'ServerTypeGPU' failed as data isn't a dictionary."
119+
)
120+
121+
args: Dict[str, Any] = {}
122+
123+
field = data.get("count", None)
124+
if field is not None:
125+
args["count"] = field
126+
127+
return ServerTypeGPU(**args)
128+
129+
109130
def unmarshal_ServerTypeMemory(data: Any) -> ServerTypeMemory:
110131
if not isinstance(data, dict):
111132
raise TypeError(
@@ -125,6 +146,21 @@ def unmarshal_ServerTypeMemory(data: Any) -> ServerTypeMemory:
125146
return ServerTypeMemory(**args)
126147

127148

149+
def unmarshal_ServerTypeNetwork(data: Any) -> ServerTypeNetwork:
150+
if not isinstance(data, dict):
151+
raise TypeError(
152+
"Unmarshalling the type 'ServerTypeNetwork' failed as data isn't a dictionary."
153+
)
154+
155+
args: Dict[str, Any] = {}
156+
157+
field = data.get("public_bandwidth_bps", None)
158+
if field is not None:
159+
args["public_bandwidth_bps"] = field
160+
161+
return ServerTypeNetwork(**args)
162+
163+
128164
def unmarshal_ServerType(data: Any) -> ServerType:
129165
if not isinstance(data, dict):
130166
raise TypeError(
@@ -165,6 +201,18 @@ def unmarshal_ServerType(data: Any) -> ServerType:
165201
else:
166202
args["minimum_lease_duration"] = None
167203

204+
field = data.get("gpu", None)
205+
if field is not None:
206+
args["gpu"] = unmarshal_ServerTypeGPU(field)
207+
else:
208+
args["gpu"] = None
209+
210+
field = data.get("network", None)
211+
if field is not None:
212+
args["network"] = unmarshal_ServerTypeNetwork(field)
213+
else:
214+
args["network"] = None
215+
168216
field = data.get("default_os", None)
169217
if field is not None:
170218
args["default_os"] = unmarshal_OS(field)

scaleway/scaleway/applesilicon/v1alpha1/types.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ class ServerTypeCPU:
103103

104104
core_count: int
105105

106+
frequency: int
107+
106108

107109
@dataclass
108110
class ServerTypeDisk:
@@ -111,13 +113,23 @@ class ServerTypeDisk:
111113
type_: str
112114

113115

116+
@dataclass
117+
class ServerTypeGPU:
118+
count: int
119+
120+
114121
@dataclass
115122
class ServerTypeMemory:
116123
capacity: int
117124

118125
type_: str
119126

120127

128+
@dataclass
129+
class ServerTypeNetwork:
130+
public_bandwidth_bps: int
131+
132+
121133
@dataclass
122134
class ServerType:
123135
name: str
@@ -150,6 +162,16 @@ class ServerType:
150162
Minimum duration of the lease in seconds (example. 3.4s).
151163
"""
152164

165+
gpu: Optional[ServerTypeGPU]
166+
"""
167+
GPU description.
168+
"""
169+
170+
network: Optional[ServerTypeNetwork]
171+
"""
172+
Network description.
173+
"""
174+
153175
default_os: Optional[OS]
154176
"""
155177
The default OS for this server type.

0 commit comments

Comments
 (0)