Skip to content

Commit fa6fe59

Browse files
committed
set_server_user_data
1 parent 1ac5a22 commit fa6fe59

File tree

1 file changed

+50
-2
lines changed

1 file changed

+50
-2
lines changed

scaleway/scaleway/instance/custom_api.py

Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from dataclasses import dataclass
2-
from typing import Dict, Any, Optional
2+
from typing import Dict, Any, Optional, BinaryIO
33

44
from scaleway_core.bridge import Zone
55
from scaleway_core.profile import ProfileDefaults
@@ -71,9 +71,57 @@ def get_server_user_data(self, server_id: str, key: str, zone: Optional[Zone] =
7171

7272
@dataclass
7373
class SetServerUserDataRequest:
74+
zone: Optional[Zone]
75+
"""
76+
Zone of the user data to set
77+
"""
78+
79+
server_id: str
7480

81+
key: str
82+
"""
83+
Key defines the user data key to set
84+
"""
7585

76-
def set_server_user_data():
86+
content: BinaryIO
87+
"""
88+
Content defines the data to set
89+
"""
90+
91+
def marshal_SetServerUserDataRequest(request: SetServerUserDataRequest, defaults: ProfileDefaults) -> Dict[str, Any]:
92+
output: Dict[str, Any] = {}
93+
94+
if request.server_id is not None:
95+
output["server_id"] = request.server_id
96+
if request.key is not None:
97+
output["key"] = request.key
98+
if request.zone is not None:
99+
output["zone"] = request.zone
100+
if request.content is not None:
101+
output["content"] = request.content
102+
103+
return output
104+
105+
def set_server_user_data(self, server_id: str, key: str, content: BinaryIO, zone: Optional[Zone] = None):
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+
"PATCH",
111+
f"/instance/v1/zones/{param_zone}/servers/{param_server_id}/user_data/{key}",
112+
body=marshal_SetServerUserDataRequest(
113+
SetServerUserDataRequest(
114+
zone= zone,
115+
server_id= server_id,
116+
key=key,
117+
content=content,
118+
),
119+
self.client,
120+
),
121+
)
122+
123+
self._throw_on_error(res)
124+
return res.json()
77125

78126

79127

0 commit comments

Comments
 (0)