|
1 | 1 | from dataclasses import dataclass |
2 | | -from typing import Dict, Any, Optional |
| 2 | +from typing import Dict, Any, Optional, BinaryIO |
3 | 3 |
|
4 | 4 | from scaleway_core.bridge import Zone |
5 | 5 | from scaleway_core.profile import ProfileDefaults |
@@ -71,9 +71,57 @@ def get_server_user_data(self, server_id: str, key: str, zone: Optional[Zone] = |
71 | 71 |
|
72 | 72 | @dataclass |
73 | 73 | class SetServerUserDataRequest: |
| 74 | + zone: Optional[Zone] |
| 75 | + """ |
| 76 | + Zone of the user data to set |
| 77 | + """ |
| 78 | + |
| 79 | + server_id: str |
74 | 80 |
|
| 81 | + key: str |
| 82 | + """ |
| 83 | + Key defines the user data key to set |
| 84 | + """ |
75 | 85 |
|
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() |
77 | 125 |
|
78 | 126 |
|
79 | 127 |
|
|
0 commit comments