cyberdesk 2.1.16__py3-none-any.whl → 2.1.17__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 (23) hide show
  1. cyberdesk/__init__.py +1 -1
  2. cyberdesk/client.py +119 -15
  3. {cyberdesk-2.1.16.dist-info → cyberdesk-2.1.17.dist-info}/METADATA +158 -2
  4. {cyberdesk-2.1.16.dist-info → cyberdesk-2.1.17.dist-info}/RECORD +23 -15
  5. openapi_client/cyberdesk_cloud_client/api/computer/copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post.py +219 -0
  6. openapi_client/cyberdesk_cloud_client/api/health/database_health_check_v1_health_db_get.py +9 -68
  7. openapi_client/cyberdesk_cloud_client/api/machines/delete_machine_v1_machines_machine_id_delete.py +16 -4
  8. openapi_client/cyberdesk_cloud_client/api/machines/update_machine_v1_machines_machine_id_patch.py +12 -0
  9. openapi_client/cyberdesk_cloud_client/models/__init__.py +17 -3
  10. openapi_client/cyberdesk_cloud_client/models/copy_to_clipboard_request.py +59 -0
  11. openapi_client/cyberdesk_cloud_client/models/copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post_response_copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post.py +47 -0
  12. openapi_client/cyberdesk_cloud_client/models/machine_create.py +80 -1
  13. openapi_client/cyberdesk_cloud_client/models/machine_create_machine_parameters_type_0.py +44 -0
  14. openapi_client/cyberdesk_cloud_client/models/{database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get.py → machine_create_machine_sensitive_parameters_type_0.py} +5 -5
  15. openapi_client/cyberdesk_cloud_client/models/machine_response.py +77 -0
  16. openapi_client/cyberdesk_cloud_client/models/machine_response_machine_parameters_type_0.py +44 -0
  17. openapi_client/cyberdesk_cloud_client/models/machine_response_machine_sensitive_parameters_type_0.py +44 -0
  18. openapi_client/cyberdesk_cloud_client/models/machine_update.py +80 -1
  19. openapi_client/cyberdesk_cloud_client/models/machine_update_machine_parameters_type_0.py +44 -0
  20. openapi_client/cyberdesk_cloud_client/models/machine_update_machine_sensitive_parameters_type_0.py +44 -0
  21. {cyberdesk-2.1.16.dist-info → cyberdesk-2.1.17.dist-info}/WHEEL +0 -0
  22. {cyberdesk-2.1.16.dist-info → cyberdesk-2.1.17.dist-info}/licenses/LICENSE +0 -0
  23. {cyberdesk-2.1.16.dist-info → cyberdesk-2.1.17.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,219 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.copy_to_clipboard_request import CopyToClipboardRequest
9
+ from ...models.copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post_response_copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post import (
10
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
11
+ )
12
+ from ...models.http_validation_error import HTTPValidationError
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ machine_id: str,
18
+ *,
19
+ body: CopyToClipboardRequest,
20
+ ) -> dict[str, Any]:
21
+ headers: dict[str, Any] = {}
22
+
23
+ _kwargs: dict[str, Any] = {
24
+ "method": "post",
25
+ "url": f"/v1/computer/{machine_id}/copy_to_clipboard",
26
+ }
27
+
28
+ _kwargs["json"] = body.to_dict()
29
+
30
+ headers["Content-Type"] = "application/json"
31
+
32
+ _kwargs["headers"] = headers
33
+ return _kwargs
34
+
35
+
36
+ def _parse_response(
37
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
38
+ ) -> Optional[
39
+ Union[
40
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
41
+ HTTPValidationError,
42
+ ]
43
+ ]:
44
+ if response.status_code == 200:
45
+ response_200 = CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost.from_dict(
46
+ response.json()
47
+ )
48
+
49
+ return response_200
50
+ if response.status_code == 422:
51
+ response_422 = HTTPValidationError.from_dict(response.json())
52
+
53
+ return response_422
54
+ if client.raise_on_unexpected_status:
55
+ raise errors.UnexpectedStatus(response.status_code, response.content)
56
+ else:
57
+ return None
58
+
59
+
60
+ def _build_response(
61
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
62
+ ) -> Response[
63
+ Union[
64
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
65
+ HTTPValidationError,
66
+ ]
67
+ ]:
68
+ return Response(
69
+ status_code=HTTPStatus(response.status_code),
70
+ content=response.content,
71
+ headers=response.headers,
72
+ parsed=_parse_response(client=client, response=response),
73
+ )
74
+
75
+
76
+ def sync_detailed(
77
+ machine_id: str,
78
+ *,
79
+ client: AuthenticatedClient,
80
+ body: CopyToClipboardRequest,
81
+ ) -> Response[
82
+ Union[
83
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
84
+ HTTPValidationError,
85
+ ]
86
+ ]:
87
+ """Copy to clipboard via Ctrl+C
88
+
89
+ Execute Ctrl+C and return clipboard contents with the specified key name.
90
+
91
+ Args:
92
+ machine_id (str):
93
+ body (CopyToClipboardRequest):
94
+
95
+ Raises:
96
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
97
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
98
+
99
+ Returns:
100
+ Response[Union[CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost, HTTPValidationError]]
101
+ """
102
+
103
+ kwargs = _get_kwargs(
104
+ machine_id=machine_id,
105
+ body=body,
106
+ )
107
+
108
+ response = client.get_httpx_client().request(
109
+ **kwargs,
110
+ )
111
+
112
+ return _build_response(client=client, response=response)
113
+
114
+
115
+ def sync(
116
+ machine_id: str,
117
+ *,
118
+ client: AuthenticatedClient,
119
+ body: CopyToClipboardRequest,
120
+ ) -> Optional[
121
+ Union[
122
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
123
+ HTTPValidationError,
124
+ ]
125
+ ]:
126
+ """Copy to clipboard via Ctrl+C
127
+
128
+ Execute Ctrl+C and return clipboard contents with the specified key name.
129
+
130
+ Args:
131
+ machine_id (str):
132
+ body (CopyToClipboardRequest):
133
+
134
+ Raises:
135
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
136
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
137
+
138
+ Returns:
139
+ Union[CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost, HTTPValidationError]
140
+ """
141
+
142
+ return sync_detailed(
143
+ machine_id=machine_id,
144
+ client=client,
145
+ body=body,
146
+ ).parsed
147
+
148
+
149
+ async def asyncio_detailed(
150
+ machine_id: str,
151
+ *,
152
+ client: AuthenticatedClient,
153
+ body: CopyToClipboardRequest,
154
+ ) -> Response[
155
+ Union[
156
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
157
+ HTTPValidationError,
158
+ ]
159
+ ]:
160
+ """Copy to clipboard via Ctrl+C
161
+
162
+ Execute Ctrl+C and return clipboard contents with the specified key name.
163
+
164
+ Args:
165
+ machine_id (str):
166
+ body (CopyToClipboardRequest):
167
+
168
+ Raises:
169
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
170
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
171
+
172
+ Returns:
173
+ Response[Union[CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost, HTTPValidationError]]
174
+ """
175
+
176
+ kwargs = _get_kwargs(
177
+ machine_id=machine_id,
178
+ body=body,
179
+ )
180
+
181
+ response = await client.get_async_httpx_client().request(**kwargs)
182
+
183
+ return _build_response(client=client, response=response)
184
+
185
+
186
+ async def asyncio(
187
+ machine_id: str,
188
+ *,
189
+ client: AuthenticatedClient,
190
+ body: CopyToClipboardRequest,
191
+ ) -> Optional[
192
+ Union[
193
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
194
+ HTTPValidationError,
195
+ ]
196
+ ]:
197
+ """Copy to clipboard via Ctrl+C
198
+
199
+ Execute Ctrl+C and return clipboard contents with the specified key name.
200
+
201
+ Args:
202
+ machine_id (str):
203
+ body (CopyToClipboardRequest):
204
+
205
+ Raises:
206
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
207
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
208
+
209
+ Returns:
210
+ Union[CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost, HTTPValidationError]
211
+ """
212
+
213
+ return (
214
+ await asyncio_detailed(
215
+ machine_id=machine_id,
216
+ client=client,
217
+ body=body,
218
+ )
219
+ ).parsed
@@ -5,9 +5,6 @@ import httpx
5
5
 
6
6
  from ... import errors
7
7
  from ...client import AuthenticatedClient, Client
8
- from ...models.database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get import (
9
- DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet,
10
- )
11
8
  from ...types import Response
12
9
 
13
10
 
@@ -20,24 +17,16 @@ def _get_kwargs() -> dict[str, Any]:
20
17
  return _kwargs
21
18
 
22
19
 
23
- def _parse_response(
24
- *, client: Union[AuthenticatedClient, Client], response: httpx.Response
25
- ) -> Optional[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]:
20
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
26
21
  if response.status_code == 200:
27
- response_200 = DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet.from_dict(
28
- response.json()
29
- )
30
-
31
- return response_200
22
+ return None
32
23
  if client.raise_on_unexpected_status:
33
24
  raise errors.UnexpectedStatus(response.status_code, response.content)
34
25
  else:
35
26
  return None
36
27
 
37
28
 
38
- def _build_response(
39
- *, client: Union[AuthenticatedClient, Client], response: httpx.Response
40
- ) -> Response[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]:
29
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
41
30
  return Response(
42
31
  status_code=HTTPStatus(response.status_code),
43
32
  content=response.content,
@@ -49,19 +38,19 @@ def _build_response(
49
38
  def sync_detailed(
50
39
  *,
51
40
  client: Union[AuthenticatedClient, Client],
52
- ) -> Response[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]:
41
+ ) -> Response[Any]:
53
42
  """Database Health Check
54
43
 
55
44
  Database health check endpoint.
56
45
 
57
- Verifies database connectivity without authentication.
46
+ Verifies database connectivity and pool status without authentication.
58
47
 
59
48
  Raises:
60
49
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
61
50
  httpx.TimeoutException: If the request takes longer than Client.timeout.
62
51
 
63
52
  Returns:
64
- Response[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]
53
+ Response[Any]
65
54
  """
66
55
 
67
56
  kwargs = _get_kwargs()
@@ -73,45 +62,22 @@ def sync_detailed(
73
62
  return _build_response(client=client, response=response)
74
63
 
75
64
 
76
- def sync(
77
- *,
78
- client: Union[AuthenticatedClient, Client],
79
- ) -> Optional[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]:
80
- """Database Health Check
81
-
82
- Database health check endpoint.
83
-
84
- Verifies database connectivity without authentication.
85
-
86
- Raises:
87
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
88
- httpx.TimeoutException: If the request takes longer than Client.timeout.
89
-
90
- Returns:
91
- DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet
92
- """
93
-
94
- return sync_detailed(
95
- client=client,
96
- ).parsed
97
-
98
-
99
65
  async def asyncio_detailed(
100
66
  *,
101
67
  client: Union[AuthenticatedClient, Client],
102
- ) -> Response[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]:
68
+ ) -> Response[Any]:
103
69
  """Database Health Check
104
70
 
105
71
  Database health check endpoint.
106
72
 
107
- Verifies database connectivity without authentication.
73
+ Verifies database connectivity and pool status without authentication.
108
74
 
109
75
  Raises:
110
76
  errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
111
77
  httpx.TimeoutException: If the request takes longer than Client.timeout.
112
78
 
113
79
  Returns:
114
- Response[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]
80
+ Response[Any]
115
81
  """
116
82
 
117
83
  kwargs = _get_kwargs()
@@ -119,28 +85,3 @@ async def asyncio_detailed(
119
85
  response = await client.get_async_httpx_client().request(**kwargs)
120
86
 
121
87
  return _build_response(client=client, response=response)
122
-
123
-
124
- async def asyncio(
125
- *,
126
- client: Union[AuthenticatedClient, Client],
127
- ) -> Optional[DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet]:
128
- """Database Health Check
129
-
130
- Database health check endpoint.
131
-
132
- Verifies database connectivity without authentication.
133
-
134
- Raises:
135
- errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
136
- httpx.TimeoutException: If the request takes longer than Client.timeout.
137
-
138
- Returns:
139
- DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet
140
- """
141
-
142
- return (
143
- await asyncio_detailed(
144
- client=client,
145
- )
146
- ).parsed
@@ -57,7 +57,10 @@ def sync_detailed(
57
57
 
58
58
  Delete a machine.
59
59
 
60
- This will also delete all associated connections, request logs, and runs.
60
+ Associated runs are PRESERVED with machine_id set to NULL.
61
+ This ensures run history is never lost when a machine is deleted.
62
+ Connections and request logs are cascade deleted.
63
+
61
64
  The machine must belong to the authenticated organization.
62
65
 
63
66
  Args:
@@ -91,7 +94,10 @@ def sync(
91
94
 
92
95
  Delete a machine.
93
96
 
94
- This will also delete all associated connections, request logs, and runs.
97
+ Associated runs are PRESERVED with machine_id set to NULL.
98
+ This ensures run history is never lost when a machine is deleted.
99
+ Connections and request logs are cascade deleted.
100
+
95
101
  The machine must belong to the authenticated organization.
96
102
 
97
103
  Args:
@@ -120,7 +126,10 @@ async def asyncio_detailed(
120
126
 
121
127
  Delete a machine.
122
128
 
123
- This will also delete all associated connections, request logs, and runs.
129
+ Associated runs are PRESERVED with machine_id set to NULL.
130
+ This ensures run history is never lost when a machine is deleted.
131
+ Connections and request logs are cascade deleted.
132
+
124
133
  The machine must belong to the authenticated organization.
125
134
 
126
135
  Args:
@@ -152,7 +161,10 @@ async def asyncio(
152
161
 
153
162
  Delete a machine.
154
163
 
155
- This will also delete all associated connections, request logs, and runs.
164
+ Associated runs are PRESERVED with machine_id set to NULL.
165
+ This ensures run history is never lost when a machine is deleted.
166
+ Connections and request logs are cascade deleted.
167
+
156
168
  The machine must belong to the authenticated organization.
157
169
 
158
170
  Args:
@@ -73,6 +73,9 @@ def sync_detailed(
73
73
  Only the fields provided in the request body will be updated.
74
74
  The machine must belong to the authenticated organization.
75
75
 
76
+ For machine_sensitive_parameters: provide actual secret values and they will be
77
+ stored in Basis Theory. Only aliases will be stored in the database.
78
+
76
79
  Args:
77
80
  machine_id (UUID):
78
81
  body (MachineUpdate): Schema for updating a machine
@@ -110,6 +113,9 @@ def sync(
110
113
  Only the fields provided in the request body will be updated.
111
114
  The machine must belong to the authenticated organization.
112
115
 
116
+ For machine_sensitive_parameters: provide actual secret values and they will be
117
+ stored in Basis Theory. Only aliases will be stored in the database.
118
+
113
119
  Args:
114
120
  machine_id (UUID):
115
121
  body (MachineUpdate): Schema for updating a machine
@@ -142,6 +148,9 @@ async def asyncio_detailed(
142
148
  Only the fields provided in the request body will be updated.
143
149
  The machine must belong to the authenticated organization.
144
150
 
151
+ For machine_sensitive_parameters: provide actual secret values and they will be
152
+ stored in Basis Theory. Only aliases will be stored in the database.
153
+
145
154
  Args:
146
155
  machine_id (UUID):
147
156
  body (MachineUpdate): Schema for updating a machine
@@ -177,6 +186,9 @@ async def asyncio(
177
186
  Only the fields provided in the request body will be updated.
178
187
  The machine must belong to the authenticated organization.
179
188
 
189
+ For machine_sensitive_parameters: provide actual secret values and they will be
190
+ stored in Basis Theory. Only aliases will be stored in the database.
191
+
180
192
  Args:
181
193
  machine_id (UUID):
182
194
  body (MachineUpdate): Schema for updating a machine
@@ -7,8 +7,9 @@ from .chain_step_sensitive_inputs_type_0 import ChainStepSensitiveInputsType0
7
7
  from .connection_create import ConnectionCreate
8
8
  from .connection_response import ConnectionResponse
9
9
  from .connection_status import ConnectionStatus
10
- from .database_health_check_v1_health_db_get_response_database_health_check_v1_health_db_get import (
11
- DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet,
10
+ from .copy_to_clipboard_request import CopyToClipboardRequest
11
+ from .copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post_response_copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post import (
12
+ CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost,
12
13
  )
13
14
  from .display_dimensions import DisplayDimensions
14
15
  from .dummy_test_endpoint_v1_test_post_response_dummy_test_endpoint_v1_test_post import (
@@ -36,11 +37,17 @@ from .http_validation_error import HTTPValidationError
36
37
  from .keyboard_key_request import KeyboardKeyRequest
37
38
  from .keyboard_type_request import KeyboardTypeRequest
38
39
  from .machine_create import MachineCreate
40
+ from .machine_create_machine_parameters_type_0 import MachineCreateMachineParametersType0
41
+ from .machine_create_machine_sensitive_parameters_type_0 import MachineCreateMachineSensitiveParametersType0
39
42
  from .machine_pool_assignment import MachinePoolAssignment
40
43
  from .machine_pool_update import MachinePoolUpdate
41
44
  from .machine_response import MachineResponse
45
+ from .machine_response_machine_parameters_type_0 import MachineResponseMachineParametersType0
46
+ from .machine_response_machine_sensitive_parameters_type_0 import MachineResponseMachineSensitiveParametersType0
42
47
  from .machine_status import MachineStatus
43
48
  from .machine_update import MachineUpdate
49
+ from .machine_update_machine_parameters_type_0 import MachineUpdateMachineParametersType0
50
+ from .machine_update_machine_sensitive_parameters_type_0 import MachineUpdateMachineSensitiveParametersType0
44
51
  from .mouse_click_request import MouseClickRequest
45
52
  from .mouse_drag_request import MouseDragRequest
46
53
  from .mouse_move_request import MouseMoveRequest
@@ -124,7 +131,8 @@ __all__ = (
124
131
  "ConnectionCreate",
125
132
  "ConnectionResponse",
126
133
  "ConnectionStatus",
127
- "DatabaseHealthCheckV1HealthDbGetResponseDatabaseHealthCheckV1HealthDbGet",
134
+ "CopyToClipboardRequest",
135
+ "CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost",
128
136
  "DisplayDimensions",
129
137
  "DummyTestEndpointV1TestPostResponseDummyTestEndpointV1TestPost",
130
138
  "FileInput",
@@ -139,11 +147,17 @@ __all__ = (
139
147
  "KeyboardKeyRequest",
140
148
  "KeyboardTypeRequest",
141
149
  "MachineCreate",
150
+ "MachineCreateMachineParametersType0",
151
+ "MachineCreateMachineSensitiveParametersType0",
142
152
  "MachinePoolAssignment",
143
153
  "MachinePoolUpdate",
144
154
  "MachineResponse",
155
+ "MachineResponseMachineParametersType0",
156
+ "MachineResponseMachineSensitiveParametersType0",
145
157
  "MachineStatus",
146
158
  "MachineUpdate",
159
+ "MachineUpdateMachineParametersType0",
160
+ "MachineUpdateMachineSensitiveParametersType0",
147
161
  "MouseClickRequest",
148
162
  "MouseDragRequest",
149
163
  "MouseMoveRequest",
@@ -0,0 +1,59 @@
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="CopyToClipboardRequest")
8
+
9
+
10
+ @_attrs_define
11
+ class CopyToClipboardRequest:
12
+ """
13
+ Attributes:
14
+ text (str): Key name for the copied data
15
+ """
16
+
17
+ text: str
18
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
19
+
20
+ def to_dict(self) -> dict[str, Any]:
21
+ text = self.text
22
+
23
+ field_dict: dict[str, Any] = {}
24
+ field_dict.update(self.additional_properties)
25
+ field_dict.update(
26
+ {
27
+ "text": text,
28
+ }
29
+ )
30
+
31
+ return field_dict
32
+
33
+ @classmethod
34
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
+ d = dict(src_dict)
36
+ text = d.pop("text")
37
+
38
+ copy_to_clipboard_request = cls(
39
+ text=text,
40
+ )
41
+
42
+ copy_to_clipboard_request.additional_properties = d
43
+ return copy_to_clipboard_request
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> Any:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: Any) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -0,0 +1,47 @@
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(
8
+ "T",
9
+ bound="CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost",
10
+ )
11
+
12
+
13
+ @_attrs_define
14
+ class CopyToClipboardV1ComputerMachineIdCopyToClipboardPostResponseCopyToClipboardV1ComputerMachineIdCopyToClipboardPost:
15
+ """ """
16
+
17
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
18
+
19
+ def to_dict(self) -> dict[str, Any]:
20
+ field_dict: dict[str, Any] = {}
21
+ field_dict.update(self.additional_properties)
22
+
23
+ return field_dict
24
+
25
+ @classmethod
26
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
27
+ d = dict(src_dict)
28
+ copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post_response_copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post = cls()
29
+
30
+ copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post_response_copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post.additional_properties = d
31
+ return copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post_response_copy_to_clipboard_v1_computer_machine_id_copy_to_clipboard_post
32
+
33
+ @property
34
+ def additional_keys(self) -> list[str]:
35
+ return list(self.additional_properties.keys())
36
+
37
+ def __getitem__(self, key: str) -> Any:
38
+ return self.additional_properties[key]
39
+
40
+ def __setitem__(self, key: str, value: Any) -> None:
41
+ self.additional_properties[key] = value
42
+
43
+ def __delitem__(self, key: str) -> None:
44
+ del self.additional_properties[key]
45
+
46
+ def __contains__(self, key: str) -> bool:
47
+ return key in self.additional_properties