1+ from dataclasses import dataclass
2+ from typing import Dict , Any , Optional
3+
4+ from scaleway_core .bridge import Zone
5+ from scaleway_core .profile import ProfileDefaults
6+ from scaleway_core .utils import validate_path_param
7+ from v1 .api import InstanceV1API
8+
9+ @dataclass
10+ class GetServerUserDataRequest :
11+ zone : Optional [Zone ]
12+ """
13+ Zone of the user data to get
14+ """
15+
16+ server_id : str
17+
18+ key : str
19+ """
20+ Key defines the user data key to get
21+ """
22+
23+
24+ def marshal_GetServerUserDataRequest (request : GetServerUserDataRequest , defaults : ProfileDefaults ) -> Dict [str , Any ]:
25+ output : Dict [str , Any ] = {}
26+
27+ if request .server_id is not None :
28+ output ["server_id" ] = request .server_id
29+ if request .key is not None :
30+ output ["key" ] = request .key
31+ if request .zone is not None :
32+ output ["zone" ] = request .zone
33+
34+ return output
35+
36+
37+ def get_server_user_data (self , server_id : str , key : str , zone : Optional [Zone ] = None ):
38+ """
39+ GetServerUserData gets the content of a user data on a server for the given key.
40+ :param zone: Zone to target. If none is passed will use default zone from the config.
41+ :param server_id:
42+ :param key:
43+ :return: A plain text response with data user information
44+
45+ Usage:
46+ ::
47+
48+ result = api.get_server_user_data(
49+ server_id="example",
50+ key="example",
51+ )
52+ """
53+ param_zone = validate_path_param ("zone" , zone or self .client .default_zone )
54+ param_server_id = validate_path_param ("server_id" , server_id )
55+
56+ res = self ._request (
57+ "GET" ,
58+ f"/instance/v1/zones/{ param_zone } /servers/{ param_server_id } /user_data/{ key } " ,
59+ body = marshal_GetServerUserDataRequest (
60+ GetServerUserDataRequest (
61+ zone = zone ,
62+ server_id = server_id ,
63+ key = key ,
64+ ),
65+ self .client ,
66+ ),
67+ )
68+
69+ self ._throw_on_error (res )
70+ return res .json ()
71+
72+ @dataclass
73+ class SetServerUserDataRequest :
74+
75+
76+ def set_server_user_data ():
77+
78+
79+
80+ def test_method (self ):
81+ print ("hello" )
82+
83+ InstanceV1API .test_method = test_method
0 commit comments