cyberdesk 0.2.3__py3-none-any.whl → 0.2.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cyberdesk might be problematic. Click here for more details.

Files changed (134) hide show
  1. {cyberdesk-0.2.3.dist-info → cyberdesk-0.2.5.dist-info}/METADATA +2 -2
  2. cyberdesk-0.2.5.dist-info/RECORD +136 -0
  3. cyberdesk-0.2.5.dist-info/top_level.txt +2 -0
  4. openapi_client/api_reference_client/__init__.py +8 -0
  5. openapi_client/api_reference_client/api/__init__.py +1 -0
  6. openapi_client/api_reference_client/api/desktop/__init__.py +1 -0
  7. openapi_client/api_reference_client/api/desktop/get_v1_desktop_id.py +293 -0
  8. openapi_client/api_reference_client/api/desktop/post_v1_desktop.py +294 -0
  9. openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_bash_action.py +307 -0
  10. openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_computer_action.py +419 -0
  11. openapi_client/api_reference_client/api/desktop/post_v1_desktop_id_stop.py +288 -0
  12. openapi_client/api_reference_client/client.py +268 -0
  13. openapi_client/api_reference_client/errors.py +16 -0
  14. openapi_client/api_reference_client/models/__init__.py +249 -0
  15. openapi_client/api_reference_client/models/get_v1_desktop_id_response_200.py +104 -0
  16. openapi_client/api_reference_client/models/get_v1_desktop_id_response_200_status.py +11 -0
  17. openapi_client/api_reference_client/models/get_v1_desktop_id_response_400.py +69 -0
  18. openapi_client/api_reference_client/models/get_v1_desktop_id_response_400_status.py +8 -0
  19. openapi_client/api_reference_client/models/get_v1_desktop_id_response_401.py +69 -0
  20. openapi_client/api_reference_client/models/get_v1_desktop_id_response_401_status.py +8 -0
  21. openapi_client/api_reference_client/models/get_v1_desktop_id_response_403.py +69 -0
  22. openapi_client/api_reference_client/models/get_v1_desktop_id_response_403_status.py +8 -0
  23. openapi_client/api_reference_client/models/get_v1_desktop_id_response_404.py +69 -0
  24. openapi_client/api_reference_client/models/get_v1_desktop_id_response_404_status.py +8 -0
  25. openapi_client/api_reference_client/models/get_v1_desktop_id_response_409.py +69 -0
  26. openapi_client/api_reference_client/models/get_v1_desktop_id_response_409_status.py +8 -0
  27. openapi_client/api_reference_client/models/get_v1_desktop_id_response_429.py +69 -0
  28. openapi_client/api_reference_client/models/get_v1_desktop_id_response_429_status.py +8 -0
  29. openapi_client/api_reference_client/models/get_v1_desktop_id_response_500.py +69 -0
  30. openapi_client/api_reference_client/models/get_v1_desktop_id_response_500_status.py +8 -0
  31. openapi_client/api_reference_client/models/get_v1_desktop_id_response_502.py +69 -0
  32. openapi_client/api_reference_client/models/get_v1_desktop_id_response_502_status.py +8 -0
  33. openapi_client/api_reference_client/models/post_v1_desktop_body.py +59 -0
  34. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_body.py +59 -0
  35. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_200.py +79 -0
  36. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_400.py +69 -0
  37. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_400_status.py +8 -0
  38. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_401.py +69 -0
  39. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_401_status.py +8 -0
  40. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_403.py +69 -0
  41. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_403_status.py +8 -0
  42. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_404.py +69 -0
  43. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_404_status.py +8 -0
  44. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_409.py +69 -0
  45. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_409_status.py +8 -0
  46. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_429.py +69 -0
  47. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_429_status.py +8 -0
  48. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_500.py +69 -0
  49. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_500_status.py +8 -0
  50. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_502.py +69 -0
  51. openapi_client/api_reference_client/models/post_v1_desktop_id_bash_action_response_502_status.py +8 -0
  52. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action.py +133 -0
  53. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_button.py +10 -0
  54. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_click_type.py +10 -0
  55. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_click_mouse_action_type.py +8 -0
  56. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action.py +98 -0
  57. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_end.py +71 -0
  58. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_start.py +71 -0
  59. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_drag_mouse_action_type.py +8 -0
  60. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_get_cursor_position_action.py +64 -0
  61. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_get_cursor_position_action_type.py +8 -0
  62. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_move_mouse_action.py +80 -0
  63. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_move_mouse_action_type.py +8 -0
  64. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action.py +109 -0
  65. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action_key_action_type.py +10 -0
  66. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_press_keys_action_type.py +8 -0
  67. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_200.py +79 -0
  68. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_400.py +71 -0
  69. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_400_status.py +8 -0
  70. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_401.py +71 -0
  71. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_401_status.py +8 -0
  72. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_403.py +71 -0
  73. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_403_status.py +8 -0
  74. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_404.py +71 -0
  75. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_404_status.py +8 -0
  76. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_409.py +71 -0
  77. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_409_status.py +8 -0
  78. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_429.py +71 -0
  79. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_429_status.py +8 -0
  80. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_500.py +71 -0
  81. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_500_status.py +8 -0
  82. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_502.py +71 -0
  83. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_response_502_status.py +8 -0
  84. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_screenshot_action.py +63 -0
  85. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_screenshot_action_type.py +8 -0
  86. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action.py +81 -0
  87. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action_direction.py +11 -0
  88. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_scroll_action_type.py +8 -0
  89. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_type_text_action.py +71 -0
  90. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_type_text_action_type.py +8 -0
  91. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_wait_action.py +70 -0
  92. openapi_client/api_reference_client/models/post_v1_desktop_id_computer_action_wait_action_type.py +8 -0
  93. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_200.py +62 -0
  94. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_200_status.py +11 -0
  95. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_400.py +69 -0
  96. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_400_status.py +8 -0
  97. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_401.py +69 -0
  98. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_401_status.py +8 -0
  99. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_403.py +69 -0
  100. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_403_status.py +8 -0
  101. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_404.py +69 -0
  102. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_404_status.py +8 -0
  103. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_409.py +69 -0
  104. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_409_status.py +8 -0
  105. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_429.py +69 -0
  106. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_429_status.py +8 -0
  107. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_500.py +69 -0
  108. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_500_status.py +8 -0
  109. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_502.py +69 -0
  110. openapi_client/api_reference_client/models/post_v1_desktop_id_stop_response_502_status.py +8 -0
  111. openapi_client/api_reference_client/models/post_v1_desktop_response_200.py +70 -0
  112. openapi_client/api_reference_client/models/post_v1_desktop_response_200_status.py +11 -0
  113. openapi_client/api_reference_client/models/post_v1_desktop_response_400.py +69 -0
  114. openapi_client/api_reference_client/models/post_v1_desktop_response_400_status.py +8 -0
  115. openapi_client/api_reference_client/models/post_v1_desktop_response_401.py +69 -0
  116. openapi_client/api_reference_client/models/post_v1_desktop_response_401_status.py +8 -0
  117. openapi_client/api_reference_client/models/post_v1_desktop_response_403.py +69 -0
  118. openapi_client/api_reference_client/models/post_v1_desktop_response_403_status.py +8 -0
  119. openapi_client/api_reference_client/models/post_v1_desktop_response_404.py +69 -0
  120. openapi_client/api_reference_client/models/post_v1_desktop_response_404_status.py +8 -0
  121. openapi_client/api_reference_client/models/post_v1_desktop_response_409.py +69 -0
  122. openapi_client/api_reference_client/models/post_v1_desktop_response_409_status.py +8 -0
  123. openapi_client/api_reference_client/models/post_v1_desktop_response_429.py +69 -0
  124. openapi_client/api_reference_client/models/post_v1_desktop_response_429_status.py +8 -0
  125. openapi_client/api_reference_client/models/post_v1_desktop_response_500.py +69 -0
  126. openapi_client/api_reference_client/models/post_v1_desktop_response_500_status.py +8 -0
  127. openapi_client/api_reference_client/models/post_v1_desktop_response_502.py +69 -0
  128. openapi_client/api_reference_client/models/post_v1_desktop_response_502_status.py +8 -0
  129. openapi_client/api_reference_client/py.typed +1 -0
  130. openapi_client/api_reference_client/types.py +46 -0
  131. cyberdesk-0.2.3.dist-info/RECORD +0 -9
  132. cyberdesk-0.2.3.dist-info/top_level.txt +0 -1
  133. {cyberdesk-0.2.3.dist-info → cyberdesk-0.2.5.dist-info}/WHEEL +0 -0
  134. {cyberdesk-0.2.3.dist-info → cyberdesk-0.2.5.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,98 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.post_v1_desktop_id_computer_action_drag_mouse_action_type import (
8
+ PostV1DesktopIdComputerActionDragMouseActionType,
9
+ )
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.post_v1_desktop_id_computer_action_drag_mouse_action_end import (
13
+ PostV1DesktopIdComputerActionDragMouseActionEnd,
14
+ )
15
+ from ..models.post_v1_desktop_id_computer_action_drag_mouse_action_start import (
16
+ PostV1DesktopIdComputerActionDragMouseActionStart,
17
+ )
18
+
19
+
20
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionDragMouseAction")
21
+
22
+
23
+ @_attrs_define
24
+ class PostV1DesktopIdComputerActionDragMouseAction:
25
+ """
26
+ Attributes:
27
+ type_ (PostV1DesktopIdComputerActionDragMouseActionType): Drag the mouse from start to end coordinates Example:
28
+ drag_mouse.
29
+ start (PostV1DesktopIdComputerActionDragMouseActionStart): Starting coordinates for the drag operation Example:
30
+ {'x': 100, 'y': 100}.
31
+ end (PostV1DesktopIdComputerActionDragMouseActionEnd): Ending coordinates for the drag operation Example: {'x':
32
+ 300, 'y': 300}.
33
+ """
34
+
35
+ type_: PostV1DesktopIdComputerActionDragMouseActionType
36
+ start: "PostV1DesktopIdComputerActionDragMouseActionStart"
37
+ end: "PostV1DesktopIdComputerActionDragMouseActionEnd"
38
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
39
+
40
+ def to_dict(self) -> dict[str, Any]:
41
+ type_ = self.type_.value
42
+
43
+ start = self.start.to_dict()
44
+
45
+ end = self.end.to_dict()
46
+
47
+ field_dict: dict[str, Any] = {}
48
+ field_dict.update(self.additional_properties)
49
+ field_dict.update(
50
+ {
51
+ "type": type_,
52
+ "start": start,
53
+ "end": end,
54
+ }
55
+ )
56
+
57
+ return field_dict
58
+
59
+ @classmethod
60
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
61
+ from ..models.post_v1_desktop_id_computer_action_drag_mouse_action_end import (
62
+ PostV1DesktopIdComputerActionDragMouseActionEnd,
63
+ )
64
+ from ..models.post_v1_desktop_id_computer_action_drag_mouse_action_start import (
65
+ PostV1DesktopIdComputerActionDragMouseActionStart,
66
+ )
67
+
68
+ d = dict(src_dict)
69
+ type_ = PostV1DesktopIdComputerActionDragMouseActionType(d.pop("type"))
70
+
71
+ start = PostV1DesktopIdComputerActionDragMouseActionStart.from_dict(d.pop("start"))
72
+
73
+ end = PostV1DesktopIdComputerActionDragMouseActionEnd.from_dict(d.pop("end"))
74
+
75
+ post_v1_desktop_id_computer_action_drag_mouse_action = cls(
76
+ type_=type_,
77
+ start=start,
78
+ end=end,
79
+ )
80
+
81
+ post_v1_desktop_id_computer_action_drag_mouse_action.additional_properties = d
82
+ return post_v1_desktop_id_computer_action_drag_mouse_action
83
+
84
+ @property
85
+ def additional_keys(self) -> list[str]:
86
+ return list(self.additional_properties.keys())
87
+
88
+ def __getitem__(self, key: str) -> Any:
89
+ return self.additional_properties[key]
90
+
91
+ def __setitem__(self, key: str, value: Any) -> None:
92
+ self.additional_properties[key] = value
93
+
94
+ def __delitem__(self, key: str) -> None:
95
+ del self.additional_properties[key]
96
+
97
+ def __contains__(self, key: str) -> bool:
98
+ return key in self.additional_properties
@@ -0,0 +1,71 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionDragMouseActionEnd")
8
+
9
+
10
+ @_attrs_define
11
+ class PostV1DesktopIdComputerActionDragMouseActionEnd:
12
+ """Ending coordinates for the drag operation
13
+
14
+ Example:
15
+ {'x': 300, 'y': 300}
16
+
17
+ Attributes:
18
+ x (int): X coordinate on the screen Example: 500.
19
+ y (int): Y coordinate on the screen Example: 300.
20
+ """
21
+
22
+ x: int
23
+ y: int
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ x = self.x
28
+
29
+ y = self.y
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "x": x,
36
+ "y": y,
37
+ }
38
+ )
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ d = dict(src_dict)
45
+ x = d.pop("x")
46
+
47
+ y = d.pop("y")
48
+
49
+ post_v1_desktop_id_computer_action_drag_mouse_action_end = cls(
50
+ x=x,
51
+ y=y,
52
+ )
53
+
54
+ post_v1_desktop_id_computer_action_drag_mouse_action_end.additional_properties = d
55
+ return post_v1_desktop_id_computer_action_drag_mouse_action_end
56
+
57
+ @property
58
+ def additional_keys(self) -> list[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -0,0 +1,71 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionDragMouseActionStart")
8
+
9
+
10
+ @_attrs_define
11
+ class PostV1DesktopIdComputerActionDragMouseActionStart:
12
+ """Starting coordinates for the drag operation
13
+
14
+ Example:
15
+ {'x': 100, 'y': 100}
16
+
17
+ Attributes:
18
+ x (int): X coordinate on the screen Example: 500.
19
+ y (int): Y coordinate on the screen Example: 300.
20
+ """
21
+
22
+ x: int
23
+ y: int
24
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> dict[str, Any]:
27
+ x = self.x
28
+
29
+ y = self.y
30
+
31
+ field_dict: dict[str, Any] = {}
32
+ field_dict.update(self.additional_properties)
33
+ field_dict.update(
34
+ {
35
+ "x": x,
36
+ "y": y,
37
+ }
38
+ )
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
44
+ d = dict(src_dict)
45
+ x = d.pop("x")
46
+
47
+ y = d.pop("y")
48
+
49
+ post_v1_desktop_id_computer_action_drag_mouse_action_start = cls(
50
+ x=x,
51
+ y=y,
52
+ )
53
+
54
+ post_v1_desktop_id_computer_action_drag_mouse_action_start.additional_properties = d
55
+ return post_v1_desktop_id_computer_action_drag_mouse_action_start
56
+
57
+ @property
58
+ def additional_keys(self) -> list[str]:
59
+ return list(self.additional_properties.keys())
60
+
61
+ def __getitem__(self, key: str) -> Any:
62
+ return self.additional_properties[key]
63
+
64
+ def __setitem__(self, key: str, value: Any) -> None:
65
+ self.additional_properties[key] = value
66
+
67
+ def __delitem__(self, key: str) -> None:
68
+ del self.additional_properties[key]
69
+
70
+ def __contains__(self, key: str) -> bool:
71
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PostV1DesktopIdComputerActionDragMouseActionType(str, Enum):
5
+ DRAG_MOUSE = "drag_mouse"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,64 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.post_v1_desktop_id_computer_action_get_cursor_position_action_type import (
8
+ PostV1DesktopIdComputerActionGetCursorPositionActionType,
9
+ )
10
+
11
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionGetCursorPositionAction")
12
+
13
+
14
+ @_attrs_define
15
+ class PostV1DesktopIdComputerActionGetCursorPositionAction:
16
+ """
17
+ Attributes:
18
+ type_ (PostV1DesktopIdComputerActionGetCursorPositionActionType): Get the current mouse cursor position Example:
19
+ get_cursor_position.
20
+ """
21
+
22
+ type_: PostV1DesktopIdComputerActionGetCursorPositionActionType
23
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> dict[str, Any]:
26
+ type_ = self.type_.value
27
+
28
+ field_dict: dict[str, Any] = {}
29
+ field_dict.update(self.additional_properties)
30
+ field_dict.update(
31
+ {
32
+ "type": type_,
33
+ }
34
+ )
35
+
36
+ return field_dict
37
+
38
+ @classmethod
39
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
40
+ d = dict(src_dict)
41
+ type_ = PostV1DesktopIdComputerActionGetCursorPositionActionType(d.pop("type"))
42
+
43
+ post_v1_desktop_id_computer_action_get_cursor_position_action = cls(
44
+ type_=type_,
45
+ )
46
+
47
+ post_v1_desktop_id_computer_action_get_cursor_position_action.additional_properties = d
48
+ return post_v1_desktop_id_computer_action_get_cursor_position_action
49
+
50
+ @property
51
+ def additional_keys(self) -> list[str]:
52
+ return list(self.additional_properties.keys())
53
+
54
+ def __getitem__(self, key: str) -> Any:
55
+ return self.additional_properties[key]
56
+
57
+ def __setitem__(self, key: str, value: Any) -> None:
58
+ self.additional_properties[key] = value
59
+
60
+ def __delitem__(self, key: str) -> None:
61
+ del self.additional_properties[key]
62
+
63
+ def __contains__(self, key: str) -> bool:
64
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PostV1DesktopIdComputerActionGetCursorPositionActionType(str, Enum):
5
+ GET_CURSOR_POSITION = "get_cursor_position"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,80 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.post_v1_desktop_id_computer_action_move_mouse_action_type import (
8
+ PostV1DesktopIdComputerActionMoveMouseActionType,
9
+ )
10
+
11
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionMoveMouseAction")
12
+
13
+
14
+ @_attrs_define
15
+ class PostV1DesktopIdComputerActionMoveMouseAction:
16
+ """
17
+ Attributes:
18
+ type_ (PostV1DesktopIdComputerActionMoveMouseActionType): Move the mouse cursor to the specified coordinates
19
+ Example: move_mouse.
20
+ x (int): X coordinate to move to Example: 500.
21
+ y (int): Y coordinate to move to Example: 300.
22
+ """
23
+
24
+ type_: PostV1DesktopIdComputerActionMoveMouseActionType
25
+ x: int
26
+ y: int
27
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> dict[str, Any]:
30
+ type_ = self.type_.value
31
+
32
+ x = self.x
33
+
34
+ y = self.y
35
+
36
+ field_dict: dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "type": type_,
41
+ "x": x,
42
+ "y": y,
43
+ }
44
+ )
45
+
46
+ return field_dict
47
+
48
+ @classmethod
49
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
50
+ d = dict(src_dict)
51
+ type_ = PostV1DesktopIdComputerActionMoveMouseActionType(d.pop("type"))
52
+
53
+ x = d.pop("x")
54
+
55
+ y = d.pop("y")
56
+
57
+ post_v1_desktop_id_computer_action_move_mouse_action = cls(
58
+ type_=type_,
59
+ x=x,
60
+ y=y,
61
+ )
62
+
63
+ post_v1_desktop_id_computer_action_move_mouse_action.additional_properties = d
64
+ return post_v1_desktop_id_computer_action_move_mouse_action
65
+
66
+ @property
67
+ def additional_keys(self) -> list[str]:
68
+ return list(self.additional_properties.keys())
69
+
70
+ def __getitem__(self, key: str) -> Any:
71
+ return self.additional_properties[key]
72
+
73
+ def __setitem__(self, key: str, value: Any) -> None:
74
+ self.additional_properties[key] = value
75
+
76
+ def __delitem__(self, key: str) -> None:
77
+ del self.additional_properties[key]
78
+
79
+ def __contains__(self, key: str) -> bool:
80
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PostV1DesktopIdComputerActionMoveMouseActionType(str, Enum):
5
+ MOVE_MOUSE = "move_mouse"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,109 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.post_v1_desktop_id_computer_action_press_keys_action_key_action_type import (
8
+ PostV1DesktopIdComputerActionPressKeysActionKeyActionType,
9
+ )
10
+ from ..models.post_v1_desktop_id_computer_action_press_keys_action_type import (
11
+ PostV1DesktopIdComputerActionPressKeysActionType,
12
+ )
13
+ from ..types import UNSET, Unset
14
+
15
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionPressKeysAction")
16
+
17
+
18
+ @_attrs_define
19
+ class PostV1DesktopIdComputerActionPressKeysAction:
20
+ """
21
+ Attributes:
22
+ type_ (PostV1DesktopIdComputerActionPressKeysActionType): Press, hold down, or release one or more keyboard
23
+ keys. Defaults to a single press and release. Example: press_keys.
24
+ keys (Union[list[str], str]):
25
+ key_action_type (Union[Unset, PostV1DesktopIdComputerActionPressKeysActionKeyActionType]): Type of key action
26
+ (optional, defaults to 'press' which is a down and up action) Example: press.
27
+ """
28
+
29
+ type_: PostV1DesktopIdComputerActionPressKeysActionType
30
+ keys: Union[list[str], str]
31
+ key_action_type: Union[Unset, PostV1DesktopIdComputerActionPressKeysActionKeyActionType] = UNSET
32
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
33
+
34
+ def to_dict(self) -> dict[str, Any]:
35
+ type_ = self.type_.value
36
+
37
+ keys: Union[list[str], str]
38
+ if isinstance(self.keys, list):
39
+ keys = self.keys
40
+
41
+ else:
42
+ keys = self.keys
43
+
44
+ key_action_type: Union[Unset, str] = UNSET
45
+ if not isinstance(self.key_action_type, Unset):
46
+ key_action_type = self.key_action_type.value
47
+
48
+ field_dict: dict[str, Any] = {}
49
+ field_dict.update(self.additional_properties)
50
+ field_dict.update(
51
+ {
52
+ "type": type_,
53
+ "keys": keys,
54
+ }
55
+ )
56
+ if key_action_type is not UNSET:
57
+ field_dict["key_action_type"] = key_action_type
58
+
59
+ return field_dict
60
+
61
+ @classmethod
62
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
63
+ d = dict(src_dict)
64
+ type_ = PostV1DesktopIdComputerActionPressKeysActionType(d.pop("type"))
65
+
66
+ def _parse_keys(data: object) -> Union[list[str], str]:
67
+ try:
68
+ if not isinstance(data, list):
69
+ raise TypeError()
70
+ keys_type_1 = cast(list[str], data)
71
+
72
+ return keys_type_1
73
+ except: # noqa: E722
74
+ pass
75
+ return cast(Union[list[str], str], data)
76
+
77
+ keys = _parse_keys(d.pop("keys"))
78
+
79
+ _key_action_type = d.pop("key_action_type", UNSET)
80
+ key_action_type: Union[Unset, PostV1DesktopIdComputerActionPressKeysActionKeyActionType]
81
+ if isinstance(_key_action_type, Unset):
82
+ key_action_type = UNSET
83
+ else:
84
+ key_action_type = PostV1DesktopIdComputerActionPressKeysActionKeyActionType(_key_action_type)
85
+
86
+ post_v1_desktop_id_computer_action_press_keys_action = cls(
87
+ type_=type_,
88
+ keys=keys,
89
+ key_action_type=key_action_type,
90
+ )
91
+
92
+ post_v1_desktop_id_computer_action_press_keys_action.additional_properties = d
93
+ return post_v1_desktop_id_computer_action_press_keys_action
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PostV1DesktopIdComputerActionPressKeysActionKeyActionType(str, Enum):
5
+ DOWN = "down"
6
+ PRESS = "press"
7
+ UP = "up"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PostV1DesktopIdComputerActionPressKeysActionType(str, Enum):
5
+ PRESS_KEYS = "press_keys"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,79 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="PostV1DesktopIdComputerActionResponse200")
10
+
11
+
12
+ @_attrs_define
13
+ class PostV1DesktopIdComputerActionResponse200:
14
+ """
15
+ Attributes:
16
+ output (Union[Unset, str]): Raw string output from the executed command (if any) Example: X=500 Y=300.
17
+ error (Union[Unset, str]): Error message if the operation failed (also indicated by non-2xx HTTP status)
18
+ Example: Command failed with code 1: xdotool: command not found.
19
+ base64_image (Union[Unset, str]): Base64 encoded JPEG image data (only returned for screenshot actions) Example:
20
+ /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQ....
21
+ """
22
+
23
+ output: Union[Unset, str] = UNSET
24
+ error: Union[Unset, str] = UNSET
25
+ base64_image: Union[Unset, str] = UNSET
26
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
27
+
28
+ def to_dict(self) -> dict[str, Any]:
29
+ output = self.output
30
+
31
+ error = self.error
32
+
33
+ base64_image = self.base64_image
34
+
35
+ field_dict: dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update({})
38
+ if output is not UNSET:
39
+ field_dict["output"] = output
40
+ if error is not UNSET:
41
+ field_dict["error"] = error
42
+ if base64_image is not UNSET:
43
+ field_dict["base64_image"] = base64_image
44
+
45
+ return field_dict
46
+
47
+ @classmethod
48
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
49
+ d = dict(src_dict)
50
+ output = d.pop("output", UNSET)
51
+
52
+ error = d.pop("error", UNSET)
53
+
54
+ base64_image = d.pop("base64_image", UNSET)
55
+
56
+ post_v1_desktop_id_computer_action_response_200 = cls(
57
+ output=output,
58
+ error=error,
59
+ base64_image=base64_image,
60
+ )
61
+
62
+ post_v1_desktop_id_computer_action_response_200.additional_properties = d
63
+ return post_v1_desktop_id_computer_action_response_200
64
+
65
+ @property
66
+ def additional_keys(self) -> list[str]:
67
+ return list(self.additional_properties.keys())
68
+
69
+ def __getitem__(self, key: str) -> Any:
70
+ return self.additional_properties[key]
71
+
72
+ def __setitem__(self, key: str, value: Any) -> None:
73
+ self.additional_properties[key] = value
74
+
75
+ def __delitem__(self, key: str) -> None:
76
+ del self.additional_properties[key]
77
+
78
+ def __contains__(self, key: str) -> bool:
79
+ return key in self.additional_properties