cyberdesk 1.7.0__py3-none-any.whl → 1.9.0__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 (43) hide show
  1. cyberdesk/__init__.py +11 -1
  2. cyberdesk/client.py +188 -0
  3. {cyberdesk-1.7.0.dist-info → cyberdesk-1.9.0.dist-info}/METADATA +39 -17
  4. {cyberdesk-1.7.0.dist-info → cyberdesk-1.9.0.dist-info}/RECORD +43 -15
  5. openapi_client/cyberdesk_cloud_client/api/computer/fs_list_v1_computer_machine_id_fs_list_get.py +188 -0
  6. openapi_client/cyberdesk_cloud_client/api/computer/fs_read_v1_computer_machine_id_fs_read_get.py +188 -0
  7. openapi_client/cyberdesk_cloud_client/api/computer/fs_write_v1_computer_machine_id_fs_write_post.py +201 -0
  8. openapi_client/cyberdesk_cloud_client/api/computer/powershell_exec_v1_computer_machine_id_shell_powershell_exec_post.py +219 -0
  9. openapi_client/cyberdesk_cloud_client/api/computer/powershell_session_v1_computer_machine_id_shell_powershell_session_post.py +219 -0
  10. openapi_client/cyberdesk_cloud_client/api/run_attachments/__init__.py +1 -0
  11. openapi_client/cyberdesk_cloud_client/api/run_attachments/create_run_attachment_v1_run_attachments_post.py +184 -0
  12. openapi_client/cyberdesk_cloud_client/api/run_attachments/delete_run_attachment_v1_run_attachments_attachment_id_delete.py +170 -0
  13. openapi_client/cyberdesk_cloud_client/api/run_attachments/download_run_attachment_v1_run_attachments_attachment_id_download_get.py +170 -0
  14. openapi_client/cyberdesk_cloud_client/api/run_attachments/get_run_attachment_v1_run_attachments_attachment_id_get.py +172 -0
  15. openapi_client/cyberdesk_cloud_client/api/run_attachments/list_run_attachments_v1_run_attachments_get.py +240 -0
  16. openapi_client/cyberdesk_cloud_client/api/run_attachments/update_run_attachment_v1_run_attachments_attachment_id_put.py +194 -0
  17. openapi_client/cyberdesk_cloud_client/models/__init__.py +42 -0
  18. openapi_client/cyberdesk_cloud_client/models/attachment_type.py +9 -0
  19. openapi_client/cyberdesk_cloud_client/models/file_input.py +99 -0
  20. openapi_client/cyberdesk_cloud_client/models/file_write_request.py +78 -0
  21. openapi_client/cyberdesk_cloud_client/models/fs_list_v1_computer_machine_id_fs_list_get_response_fs_list_v1_computer_machine_id_fs_list_get.py +44 -0
  22. openapi_client/cyberdesk_cloud_client/models/fs_read_v1_computer_machine_id_fs_read_get_response_fs_read_v1_computer_machine_id_fs_read_get.py +44 -0
  23. openapi_client/cyberdesk_cloud_client/models/fs_write_v1_computer_machine_id_fs_write_post_response_fs_write_v1_computer_machine_id_fs_write_post.py +44 -0
  24. openapi_client/cyberdesk_cloud_client/models/paginated_response_run_attachment_response.py +97 -0
  25. openapi_client/cyberdesk_cloud_client/models/power_shell_exec_request.py +110 -0
  26. openapi_client/cyberdesk_cloud_client/models/power_shell_session_request.py +81 -0
  27. openapi_client/cyberdesk_cloud_client/models/powershell_exec_v1_computer_machine_id_shell_powershell_exec_post_response_powershell_exec_v1_computer_machine_id_shell_powershell_exec_post.py +47 -0
  28. openapi_client/cyberdesk_cloud_client/models/powershell_session_v1_computer_machine_id_shell_powershell_session_post_response_powershell_session_v1_computer_machine_id_shell_powershell_session_post.py +47 -0
  29. openapi_client/cyberdesk_cloud_client/models/run_attachment_create.py +157 -0
  30. openapi_client/cyberdesk_cloud_client/models/run_attachment_response.py +189 -0
  31. openapi_client/cyberdesk_cloud_client/models/run_attachment_update.py +84 -0
  32. openapi_client/cyberdesk_cloud_client/models/run_create.py +41 -0
  33. openapi_client/cyberdesk_cloud_client/models/run_response.py +26 -0
  34. openapi_client/cyberdesk_cloud_client/models/trajectory_create.py +40 -1
  35. openapi_client/cyberdesk_cloud_client/models/trajectory_create_original_input_values_type_0.py +44 -0
  36. openapi_client/cyberdesk_cloud_client/models/trajectory_response.py +40 -1
  37. openapi_client/cyberdesk_cloud_client/models/trajectory_response_original_input_values_type_0.py +44 -0
  38. openapi_client/cyberdesk_cloud_client/models/workflow_create.py +9 -0
  39. openapi_client/cyberdesk_cloud_client/models/workflow_response.py +9 -0
  40. openapi_client/cyberdesk_cloud_client/models/workflow_update.py +20 -0
  41. {cyberdesk-1.7.0.dist-info → cyberdesk-1.9.0.dist-info}/WHEEL +0 -0
  42. {cyberdesk-1.7.0.dist-info → cyberdesk-1.9.0.dist-info}/licenses/LICENSE +0 -0
  43. {cyberdesk-1.7.0.dist-info → cyberdesk-1.9.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,170 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+ from uuid import UUID
4
+
5
+ import httpx
6
+
7
+ from ... import errors
8
+ from ...client import AuthenticatedClient, Client
9
+ from ...models.http_validation_error import HTTPValidationError
10
+ from ...types import Response
11
+
12
+
13
+ def _get_kwargs(
14
+ attachment_id: UUID,
15
+ ) -> dict[str, Any]:
16
+ _kwargs: dict[str, Any] = {
17
+ "method": "get",
18
+ "url": f"/v1/run-attachments/{attachment_id}/download",
19
+ }
20
+
21
+ return _kwargs
22
+
23
+
24
+ def _parse_response(
25
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
26
+ ) -> Optional[Union[Any, HTTPValidationError]]:
27
+ if response.status_code == 200:
28
+ response_200 = response.json()
29
+ return response_200
30
+ if response.status_code == 422:
31
+ response_422 = HTTPValidationError.from_dict(response.json())
32
+
33
+ return response_422
34
+ if client.raise_on_unexpected_status:
35
+ raise errors.UnexpectedStatus(response.status_code, response.content)
36
+ else:
37
+ return None
38
+
39
+
40
+ def _build_response(
41
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
42
+ ) -> Response[Union[Any, HTTPValidationError]]:
43
+ return Response(
44
+ status_code=HTTPStatus(response.status_code),
45
+ content=response.content,
46
+ headers=response.headers,
47
+ parsed=_parse_response(client=client, response=response),
48
+ )
49
+
50
+
51
+ def sync_detailed(
52
+ attachment_id: UUID,
53
+ *,
54
+ client: AuthenticatedClient,
55
+ ) -> Response[Union[Any, HTTPValidationError]]:
56
+ """Download Run Attachment
57
+
58
+ Download a run attachment file.
59
+
60
+ Returns the file content as a streaming response.
61
+
62
+ Args:
63
+ attachment_id (UUID):
64
+
65
+ Raises:
66
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
67
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
68
+
69
+ Returns:
70
+ Response[Union[Any, HTTPValidationError]]
71
+ """
72
+
73
+ kwargs = _get_kwargs(
74
+ attachment_id=attachment_id,
75
+ )
76
+
77
+ response = client.get_httpx_client().request(
78
+ **kwargs,
79
+ )
80
+
81
+ return _build_response(client=client, response=response)
82
+
83
+
84
+ def sync(
85
+ attachment_id: UUID,
86
+ *,
87
+ client: AuthenticatedClient,
88
+ ) -> Optional[Union[Any, HTTPValidationError]]:
89
+ """Download Run Attachment
90
+
91
+ Download a run attachment file.
92
+
93
+ Returns the file content as a streaming response.
94
+
95
+ Args:
96
+ attachment_id (UUID):
97
+
98
+ Raises:
99
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
100
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
101
+
102
+ Returns:
103
+ Union[Any, HTTPValidationError]
104
+ """
105
+
106
+ return sync_detailed(
107
+ attachment_id=attachment_id,
108
+ client=client,
109
+ ).parsed
110
+
111
+
112
+ async def asyncio_detailed(
113
+ attachment_id: UUID,
114
+ *,
115
+ client: AuthenticatedClient,
116
+ ) -> Response[Union[Any, HTTPValidationError]]:
117
+ """Download Run Attachment
118
+
119
+ Download a run attachment file.
120
+
121
+ Returns the file content as a streaming response.
122
+
123
+ Args:
124
+ attachment_id (UUID):
125
+
126
+ Raises:
127
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
128
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
129
+
130
+ Returns:
131
+ Response[Union[Any, HTTPValidationError]]
132
+ """
133
+
134
+ kwargs = _get_kwargs(
135
+ attachment_id=attachment_id,
136
+ )
137
+
138
+ response = await client.get_async_httpx_client().request(**kwargs)
139
+
140
+ return _build_response(client=client, response=response)
141
+
142
+
143
+ async def asyncio(
144
+ attachment_id: UUID,
145
+ *,
146
+ client: AuthenticatedClient,
147
+ ) -> Optional[Union[Any, HTTPValidationError]]:
148
+ """Download Run Attachment
149
+
150
+ Download a run attachment file.
151
+
152
+ Returns the file content as a streaming response.
153
+
154
+ Args:
155
+ attachment_id (UUID):
156
+
157
+ Raises:
158
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
159
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
160
+
161
+ Returns:
162
+ Union[Any, HTTPValidationError]
163
+ """
164
+
165
+ return (
166
+ await asyncio_detailed(
167
+ attachment_id=attachment_id,
168
+ client=client,
169
+ )
170
+ ).parsed
@@ -0,0 +1,172 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+ from uuid import UUID
4
+
5
+ import httpx
6
+
7
+ from ... import errors
8
+ from ...client import AuthenticatedClient, Client
9
+ from ...models.http_validation_error import HTTPValidationError
10
+ from ...models.run_attachment_response import RunAttachmentResponse
11
+ from ...types import Response
12
+
13
+
14
+ def _get_kwargs(
15
+ attachment_id: UUID,
16
+ ) -> dict[str, Any]:
17
+ _kwargs: dict[str, Any] = {
18
+ "method": "get",
19
+ "url": f"/v1/run-attachments/{attachment_id}",
20
+ }
21
+
22
+ return _kwargs
23
+
24
+
25
+ def _parse_response(
26
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
27
+ ) -> Optional[Union[HTTPValidationError, RunAttachmentResponse]]:
28
+ if response.status_code == 200:
29
+ response_200 = RunAttachmentResponse.from_dict(response.json())
30
+
31
+ return response_200
32
+ if response.status_code == 422:
33
+ response_422 = HTTPValidationError.from_dict(response.json())
34
+
35
+ return response_422
36
+ if client.raise_on_unexpected_status:
37
+ raise errors.UnexpectedStatus(response.status_code, response.content)
38
+ else:
39
+ return None
40
+
41
+
42
+ def _build_response(
43
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
44
+ ) -> Response[Union[HTTPValidationError, RunAttachmentResponse]]:
45
+ return Response(
46
+ status_code=HTTPStatus(response.status_code),
47
+ content=response.content,
48
+ headers=response.headers,
49
+ parsed=_parse_response(client=client, response=response),
50
+ )
51
+
52
+
53
+ def sync_detailed(
54
+ attachment_id: UUID,
55
+ *,
56
+ client: AuthenticatedClient,
57
+ ) -> Response[Union[HTTPValidationError, RunAttachmentResponse]]:
58
+ """Get Run Attachment
59
+
60
+ Get a specific run attachment by ID.
61
+
62
+ Returns attachment metadata only. Use the download endpoint to get file content.
63
+
64
+ Args:
65
+ attachment_id (UUID):
66
+
67
+ Raises:
68
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
69
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
70
+
71
+ Returns:
72
+ Response[Union[HTTPValidationError, RunAttachmentResponse]]
73
+ """
74
+
75
+ kwargs = _get_kwargs(
76
+ attachment_id=attachment_id,
77
+ )
78
+
79
+ response = client.get_httpx_client().request(
80
+ **kwargs,
81
+ )
82
+
83
+ return _build_response(client=client, response=response)
84
+
85
+
86
+ def sync(
87
+ attachment_id: UUID,
88
+ *,
89
+ client: AuthenticatedClient,
90
+ ) -> Optional[Union[HTTPValidationError, RunAttachmentResponse]]:
91
+ """Get Run Attachment
92
+
93
+ Get a specific run attachment by ID.
94
+
95
+ Returns attachment metadata only. Use the download endpoint to get file content.
96
+
97
+ Args:
98
+ attachment_id (UUID):
99
+
100
+ Raises:
101
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
102
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
103
+
104
+ Returns:
105
+ Union[HTTPValidationError, RunAttachmentResponse]
106
+ """
107
+
108
+ return sync_detailed(
109
+ attachment_id=attachment_id,
110
+ client=client,
111
+ ).parsed
112
+
113
+
114
+ async def asyncio_detailed(
115
+ attachment_id: UUID,
116
+ *,
117
+ client: AuthenticatedClient,
118
+ ) -> Response[Union[HTTPValidationError, RunAttachmentResponse]]:
119
+ """Get Run Attachment
120
+
121
+ Get a specific run attachment by ID.
122
+
123
+ Returns attachment metadata only. Use the download endpoint to get file content.
124
+
125
+ Args:
126
+ attachment_id (UUID):
127
+
128
+ Raises:
129
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
130
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
131
+
132
+ Returns:
133
+ Response[Union[HTTPValidationError, RunAttachmentResponse]]
134
+ """
135
+
136
+ kwargs = _get_kwargs(
137
+ attachment_id=attachment_id,
138
+ )
139
+
140
+ response = await client.get_async_httpx_client().request(**kwargs)
141
+
142
+ return _build_response(client=client, response=response)
143
+
144
+
145
+ async def asyncio(
146
+ attachment_id: UUID,
147
+ *,
148
+ client: AuthenticatedClient,
149
+ ) -> Optional[Union[HTTPValidationError, RunAttachmentResponse]]:
150
+ """Get Run Attachment
151
+
152
+ Get a specific run attachment by ID.
153
+
154
+ Returns attachment metadata only. Use the download endpoint to get file content.
155
+
156
+ Args:
157
+ attachment_id (UUID):
158
+
159
+ Raises:
160
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
161
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
162
+
163
+ Returns:
164
+ Union[HTTPValidationError, RunAttachmentResponse]
165
+ """
166
+
167
+ return (
168
+ await asyncio_detailed(
169
+ attachment_id=attachment_id,
170
+ client=client,
171
+ )
172
+ ).parsed
@@ -0,0 +1,240 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Optional, Union
3
+ from uuid import UUID
4
+
5
+ import httpx
6
+
7
+ from ... import errors
8
+ from ...client import AuthenticatedClient, Client
9
+ from ...models.attachment_type import AttachmentType
10
+ from ...models.http_validation_error import HTTPValidationError
11
+ from ...models.paginated_response_run_attachment_response import PaginatedResponseRunAttachmentResponse
12
+ from ...types import UNSET, Response, Unset
13
+
14
+
15
+ def _get_kwargs(
16
+ *,
17
+ run_id: Union[None, UUID, Unset] = UNSET,
18
+ attachment_type: Union[AttachmentType, None, Unset] = UNSET,
19
+ skip: Union[Unset, int] = 0,
20
+ limit: Union[Unset, int] = 100,
21
+ ) -> dict[str, Any]:
22
+ params: dict[str, Any] = {}
23
+
24
+ json_run_id: Union[None, Unset, str]
25
+ if isinstance(run_id, Unset):
26
+ json_run_id = UNSET
27
+ elif isinstance(run_id, UUID):
28
+ json_run_id = str(run_id)
29
+ else:
30
+ json_run_id = run_id
31
+ params["run_id"] = json_run_id
32
+
33
+ json_attachment_type: Union[None, Unset, str]
34
+ if isinstance(attachment_type, Unset):
35
+ json_attachment_type = UNSET
36
+ elif isinstance(attachment_type, AttachmentType):
37
+ json_attachment_type = attachment_type.value
38
+ else:
39
+ json_attachment_type = attachment_type
40
+ params["attachment_type"] = json_attachment_type
41
+
42
+ params["skip"] = skip
43
+
44
+ params["limit"] = limit
45
+
46
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
47
+
48
+ _kwargs: dict[str, Any] = {
49
+ "method": "get",
50
+ "url": "/v1/run-attachments",
51
+ "params": params,
52
+ }
53
+
54
+ return _kwargs
55
+
56
+
57
+ def _parse_response(
58
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
59
+ ) -> Optional[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]:
60
+ if response.status_code == 200:
61
+ response_200 = PaginatedResponseRunAttachmentResponse.from_dict(response.json())
62
+
63
+ return response_200
64
+ if response.status_code == 422:
65
+ response_422 = HTTPValidationError.from_dict(response.json())
66
+
67
+ return response_422
68
+ if client.raise_on_unexpected_status:
69
+ raise errors.UnexpectedStatus(response.status_code, response.content)
70
+ else:
71
+ return None
72
+
73
+
74
+ def _build_response(
75
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
76
+ ) -> Response[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]:
77
+ return Response(
78
+ status_code=HTTPStatus(response.status_code),
79
+ content=response.content,
80
+ headers=response.headers,
81
+ parsed=_parse_response(client=client, response=response),
82
+ )
83
+
84
+
85
+ def sync_detailed(
86
+ *,
87
+ client: AuthenticatedClient,
88
+ run_id: Union[None, UUID, Unset] = UNSET,
89
+ attachment_type: Union[AttachmentType, None, Unset] = UNSET,
90
+ skip: Union[Unset, int] = 0,
91
+ limit: Union[Unset, int] = 100,
92
+ ) -> Response[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]:
93
+ """List Run Attachments
94
+
95
+ List all run attachments for the authenticated user.
96
+
97
+ Supports pagination and filtering by run ID and attachment type.
98
+
99
+ Args:
100
+ run_id (Union[None, UUID, Unset]): Filter by run ID
101
+ attachment_type (Union[AttachmentType, None, Unset]): Filter by attachment type
102
+ skip (Union[Unset, int]): Default: 0.
103
+ limit (Union[Unset, int]): Default: 100.
104
+
105
+ Raises:
106
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
107
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
108
+
109
+ Returns:
110
+ Response[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]
111
+ """
112
+
113
+ kwargs = _get_kwargs(
114
+ run_id=run_id,
115
+ attachment_type=attachment_type,
116
+ skip=skip,
117
+ limit=limit,
118
+ )
119
+
120
+ response = client.get_httpx_client().request(
121
+ **kwargs,
122
+ )
123
+
124
+ return _build_response(client=client, response=response)
125
+
126
+
127
+ def sync(
128
+ *,
129
+ client: AuthenticatedClient,
130
+ run_id: Union[None, UUID, Unset] = UNSET,
131
+ attachment_type: Union[AttachmentType, None, Unset] = UNSET,
132
+ skip: Union[Unset, int] = 0,
133
+ limit: Union[Unset, int] = 100,
134
+ ) -> Optional[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]:
135
+ """List Run Attachments
136
+
137
+ List all run attachments for the authenticated user.
138
+
139
+ Supports pagination and filtering by run ID and attachment type.
140
+
141
+ Args:
142
+ run_id (Union[None, UUID, Unset]): Filter by run ID
143
+ attachment_type (Union[AttachmentType, None, Unset]): Filter by attachment type
144
+ skip (Union[Unset, int]): Default: 0.
145
+ limit (Union[Unset, int]): Default: 100.
146
+
147
+ Raises:
148
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
149
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
150
+
151
+ Returns:
152
+ Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]
153
+ """
154
+
155
+ return sync_detailed(
156
+ client=client,
157
+ run_id=run_id,
158
+ attachment_type=attachment_type,
159
+ skip=skip,
160
+ limit=limit,
161
+ ).parsed
162
+
163
+
164
+ async def asyncio_detailed(
165
+ *,
166
+ client: AuthenticatedClient,
167
+ run_id: Union[None, UUID, Unset] = UNSET,
168
+ attachment_type: Union[AttachmentType, None, Unset] = UNSET,
169
+ skip: Union[Unset, int] = 0,
170
+ limit: Union[Unset, int] = 100,
171
+ ) -> Response[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]:
172
+ """List Run Attachments
173
+
174
+ List all run attachments for the authenticated user.
175
+
176
+ Supports pagination and filtering by run ID and attachment type.
177
+
178
+ Args:
179
+ run_id (Union[None, UUID, Unset]): Filter by run ID
180
+ attachment_type (Union[AttachmentType, None, Unset]): Filter by attachment type
181
+ skip (Union[Unset, int]): Default: 0.
182
+ limit (Union[Unset, int]): Default: 100.
183
+
184
+ Raises:
185
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
186
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
187
+
188
+ Returns:
189
+ Response[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]
190
+ """
191
+
192
+ kwargs = _get_kwargs(
193
+ run_id=run_id,
194
+ attachment_type=attachment_type,
195
+ skip=skip,
196
+ limit=limit,
197
+ )
198
+
199
+ response = await client.get_async_httpx_client().request(**kwargs)
200
+
201
+ return _build_response(client=client, response=response)
202
+
203
+
204
+ async def asyncio(
205
+ *,
206
+ client: AuthenticatedClient,
207
+ run_id: Union[None, UUID, Unset] = UNSET,
208
+ attachment_type: Union[AttachmentType, None, Unset] = UNSET,
209
+ skip: Union[Unset, int] = 0,
210
+ limit: Union[Unset, int] = 100,
211
+ ) -> Optional[Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]]:
212
+ """List Run Attachments
213
+
214
+ List all run attachments for the authenticated user.
215
+
216
+ Supports pagination and filtering by run ID and attachment type.
217
+
218
+ Args:
219
+ run_id (Union[None, UUID, Unset]): Filter by run ID
220
+ attachment_type (Union[AttachmentType, None, Unset]): Filter by attachment type
221
+ skip (Union[Unset, int]): Default: 0.
222
+ limit (Union[Unset, int]): Default: 100.
223
+
224
+ Raises:
225
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
226
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
227
+
228
+ Returns:
229
+ Union[HTTPValidationError, PaginatedResponseRunAttachmentResponse]
230
+ """
231
+
232
+ return (
233
+ await asyncio_detailed(
234
+ client=client,
235
+ run_id=run_id,
236
+ attachment_type=attachment_type,
237
+ skip=skip,
238
+ limit=limit,
239
+ )
240
+ ).parsed