Skip to content

Commit 97dcc42

Browse files
authored
feat(apple_silicon): add vnc diagnostic api definition (#747)
1 parent a97ba4e commit 97dcc42

File tree

8 files changed

+550
-0
lines changed

8 files changed

+550
-0
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# This file was automatically generated. DO NOT EDIT.
22
# If you have any remark or suggestion do not hesitate to open an issue.
3+
from .types import ConnectivityDiagnosticActionType
4+
from .types import ConnectivityDiagnosticDiagnosticStatus
35
from .types import ListServersRequestOrderBy
46
from .types import ServerStatus
57
from .content import SERVER_TRANSIENT_STATUSES
@@ -10,10 +12,13 @@
1012
from .types import ServerTypeGPU
1113
from .types import ServerTypeMemory
1214
from .types import ServerTypeNetwork
15+
from .types import ConnectivityDiagnosticServerHealth
1316
from .types import ServerType
1417
from .types import Server
18+
from .types import ConnectivityDiagnostic
1519
from .types import CreateServerRequest
1620
from .types import DeleteServerRequest
21+
from .types import GetConnectivityDiagnosticRequest
1722
from .types import GetOSRequest
1823
from .types import GetServerRequest
1924
from .types import GetServerTypeRequest
@@ -25,10 +30,14 @@
2530
from .types import ListServersResponse
2631
from .types import RebootServerRequest
2732
from .types import ReinstallServerRequest
33+
from .types import StartConnectivityDiagnosticRequest
34+
from .types import StartConnectivityDiagnosticResponse
2835
from .types import UpdateServerRequest
2936
from .api import ApplesiliconV1Alpha1API
3037

3138
__all__ = [
39+
"ConnectivityDiagnosticActionType",
40+
"ConnectivityDiagnosticDiagnosticStatus",
3241
"ListServersRequestOrderBy",
3342
"ServerStatus",
3443
"SERVER_TRANSIENT_STATUSES",
@@ -39,10 +48,13 @@
3948
"ServerTypeGPU",
4049
"ServerTypeMemory",
4150
"ServerTypeNetwork",
51+
"ConnectivityDiagnosticServerHealth",
4252
"ServerType",
4353
"Server",
54+
"ConnectivityDiagnostic",
4455
"CreateServerRequest",
4556
"DeleteServerRequest",
57+
"GetConnectivityDiagnosticRequest",
4658
"GetOSRequest",
4759
"GetServerRequest",
4860
"GetServerTypeRequest",
@@ -54,6 +66,8 @@
5466
"ListServersResponse",
5567
"RebootServerRequest",
5668
"ReinstallServerRequest",
69+
"StartConnectivityDiagnosticRequest",
70+
"StartConnectivityDiagnosticResponse",
5771
"UpdateServerRequest",
5872
"ApplesiliconV1Alpha1API",
5973
]

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

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
)
1717
from .types import (
1818
ListServersRequestOrderBy,
19+
ConnectivityDiagnostic,
1920
CreateServerRequest,
2021
ListOSResponse,
2122
ListServerTypesResponse,
@@ -24,6 +25,8 @@
2425
ReinstallServerRequest,
2526
Server,
2627
ServerType,
28+
StartConnectivityDiagnosticRequest,
29+
StartConnectivityDiagnosticResponse,
2730
UpdateServerRequest,
2831
)
2932
from .content import (
@@ -33,11 +36,14 @@
3336
unmarshal_OS,
3437
unmarshal_ServerType,
3538
unmarshal_Server,
39+
unmarshal_ConnectivityDiagnostic,
3640
unmarshal_ListOSResponse,
3741
unmarshal_ListServerTypesResponse,
3842
unmarshal_ListServersResponse,
43+
unmarshal_StartConnectivityDiagnosticResponse,
3944
marshal_CreateServerRequest,
4045
marshal_ReinstallServerRequest,
46+
marshal_StartConnectivityDiagnosticRequest,
4147
marshal_UpdateServerRequest,
4248
)
4349

@@ -568,3 +574,69 @@ async def reinstall_server(
568574

569575
self._throw_on_error(res)
570576
return unmarshal_Server(res.json())
577+
578+
async def start_connectivity_diagnostic(
579+
self,
580+
*,
581+
server_id: str,
582+
zone: Optional[Zone] = None,
583+
) -> StartConnectivityDiagnosticResponse:
584+
"""
585+
:param server_id:
586+
:param zone: Zone to target. If none is passed will use default zone from the config.
587+
:return: :class:`StartConnectivityDiagnosticResponse <StartConnectivityDiagnosticResponse>`
588+
589+
Usage:
590+
::
591+
592+
result = await api.start_connectivity_diagnostic(
593+
server_id="example",
594+
)
595+
"""
596+
597+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
598+
599+
res = self._request(
600+
"POST",
601+
f"/apple-silicon/v1alpha1/zones/{param_zone}/connectivity-diagnostics",
602+
body=marshal_StartConnectivityDiagnosticRequest(
603+
StartConnectivityDiagnosticRequest(
604+
server_id=server_id,
605+
zone=zone,
606+
),
607+
self.client,
608+
),
609+
)
610+
611+
self._throw_on_error(res)
612+
return unmarshal_StartConnectivityDiagnosticResponse(res.json())
613+
614+
async def get_connectivity_diagnostic(
615+
self,
616+
*,
617+
diagnostic_id: str,
618+
zone: Optional[Zone] = None,
619+
) -> ConnectivityDiagnostic:
620+
"""
621+
:param diagnostic_id:
622+
:param zone: Zone to target. If none is passed will use default zone from the config.
623+
:return: :class:`ConnectivityDiagnostic <ConnectivityDiagnostic>`
624+
625+
Usage:
626+
::
627+
628+
result = await api.get_connectivity_diagnostic(
629+
diagnostic_id="example",
630+
)
631+
"""
632+
633+
param_zone = validate_path_param("zone", zone or self.client.default_zone)
634+
param_diagnostic_id = validate_path_param("diagnostic_id", diagnostic_id)
635+
636+
res = self._request(
637+
"GET",
638+
f"/apple-silicon/v1alpha1/zones/{param_zone}/connectivity-diagnostics/{param_diagnostic_id}",
639+
)
640+
641+
self._throw_on_error(res)
642+
return unmarshal_ConnectivityDiagnostic(res.json())

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

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from scaleway_core.profile import ProfileDefaults
88
from .types import (
9+
ConnectivityDiagnosticActionType,
910
OS,
1011
ServerTypeCPU,
1112
ServerTypeDisk,
@@ -14,11 +15,15 @@
1415
ServerTypeNetwork,
1516
ServerType,
1617
Server,
18+
ConnectivityDiagnosticServerHealth,
19+
ConnectivityDiagnostic,
1720
ListOSResponse,
1821
ListServerTypesResponse,
1922
ListServersResponse,
23+
StartConnectivityDiagnosticResponse,
2024
CreateServerRequest,
2125
ReinstallServerRequest,
26+
StartConnectivityDiagnosticRequest,
2227
UpdateServerRequest,
2328
)
2429

@@ -315,6 +320,88 @@ def unmarshal_Server(data: Any) -> Server:
315320
return Server(**args)
316321

317322

323+
def unmarshal_ConnectivityDiagnosticServerHealth(
324+
data: Any,
325+
) -> ConnectivityDiagnosticServerHealth:
326+
if not isinstance(data, dict):
327+
raise TypeError(
328+
"Unmarshalling the type 'ConnectivityDiagnosticServerHealth' failed as data isn't a dictionary."
329+
)
330+
331+
args: Dict[str, Any] = {}
332+
333+
field = data.get("is_server_alive", None)
334+
if field is not None:
335+
args["is_server_alive"] = field
336+
337+
field = data.get("is_agent_alive", None)
338+
if field is not None:
339+
args["is_agent_alive"] = field
340+
341+
field = data.get("is_mdm_alive", None)
342+
if field is not None:
343+
args["is_mdm_alive"] = field
344+
345+
field = data.get("is_ssh_port_up", None)
346+
if field is not None:
347+
args["is_ssh_port_up"] = field
348+
349+
field = data.get("is_vnc_port_up", None)
350+
if field is not None:
351+
args["is_vnc_port_up"] = field
352+
353+
field = data.get("last_checkin_date", None)
354+
if field is not None:
355+
args["last_checkin_date"] = (
356+
parser.isoparse(field) if isinstance(field, str) else field
357+
)
358+
else:
359+
args["last_checkin_date"] = None
360+
361+
return ConnectivityDiagnosticServerHealth(**args)
362+
363+
364+
def unmarshal_ConnectivityDiagnostic(data: Any) -> ConnectivityDiagnostic:
365+
if not isinstance(data, dict):
366+
raise TypeError(
367+
"Unmarshalling the type 'ConnectivityDiagnostic' failed as data isn't a dictionary."
368+
)
369+
370+
args: Dict[str, Any] = {}
371+
372+
field = data.get("id", None)
373+
if field is not None:
374+
args["id"] = field
375+
376+
field = data.get("status", None)
377+
if field is not None:
378+
args["status"] = field
379+
380+
field = data.get("is_healthy", None)
381+
if field is not None:
382+
args["is_healthy"] = field
383+
384+
field = data.get("supported_actions", None)
385+
if field is not None:
386+
args["supported_actions"] = (
387+
[ConnectivityDiagnosticActionType(v) for v in field]
388+
if field is not None
389+
else None
390+
)
391+
392+
field = data.get("error_message", None)
393+
if field is not None:
394+
args["error_message"] = field
395+
396+
field = data.get("health_details", None)
397+
if field is not None:
398+
args["health_details"] = unmarshal_ConnectivityDiagnosticServerHealth(field)
399+
else:
400+
args["health_details"] = None
401+
402+
return ConnectivityDiagnostic(**args)
403+
404+
318405
def unmarshal_ListOSResponse(data: Any) -> ListOSResponse:
319406
if not isinstance(data, dict):
320407
raise TypeError(
@@ -372,6 +459,23 @@ def unmarshal_ListServersResponse(data: Any) -> ListServersResponse:
372459
return ListServersResponse(**args)
373460

374461

462+
def unmarshal_StartConnectivityDiagnosticResponse(
463+
data: Any,
464+
) -> StartConnectivityDiagnosticResponse:
465+
if not isinstance(data, dict):
466+
raise TypeError(
467+
"Unmarshalling the type 'StartConnectivityDiagnosticResponse' failed as data isn't a dictionary."
468+
)
469+
470+
args: Dict[str, Any] = {}
471+
472+
field = data.get("diagnostic_id", None)
473+
if field is not None:
474+
args["diagnostic_id"] = field
475+
476+
return StartConnectivityDiagnosticResponse(**args)
477+
478+
375479
def marshal_CreateServerRequest(
376480
request: CreateServerRequest,
377481
defaults: ProfileDefaults,
@@ -405,6 +509,18 @@ def marshal_ReinstallServerRequest(
405509
return output
406510

407511

512+
def marshal_StartConnectivityDiagnosticRequest(
513+
request: StartConnectivityDiagnosticRequest,
514+
defaults: ProfileDefaults,
515+
) -> Dict[str, Any]:
516+
output: Dict[str, Any] = {}
517+
518+
if request.server_id is not None:
519+
output["server_id"] = request.server_id
520+
521+
return output
522+
523+
408524
def marshal_UpdateServerRequest(
409525
request: UpdateServerRequest,
410526
defaults: ProfileDefaults,

0 commit comments

Comments
 (0)