cyberdesk 2.1.2__py3-none-any.whl → 2.1.4__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.

cyberdesk/__init__.py CHANGED
@@ -27,7 +27,7 @@ from .client import (
27
27
  AttachmentType,
28
28
  )
29
29
 
30
- __version__ = "2.1.2"
30
+ __version__ = "2.1.4"
31
31
 
32
32
  __all__ = [
33
33
  "CyberdeskClient",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cyberdesk
3
- Version: 2.1.2
3
+ Version: 2.1.4
4
4
  Summary: The official Python SDK for Cyberdesk
5
5
  Author-email: Cyberdesk Team <dev@cyberdesk.io>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
- cyberdesk/__init__.py,sha256=gDbfuhUTvj2DG0bjveDGBwULcF29nyGiI0mgq6oG4tw,1157
1
+ cyberdesk/__init__.py,sha256=P_WW_HA8MjPDBEKUJjUByCT4Rc32m6uQm__vuzCcJk4,1157
2
2
  cyberdesk/client.py,sha256=uRclPvQCGqpToajKZxDoam_97H3edH1SDMeui2HiN6Y,62002
3
- cyberdesk-2.1.2.dist-info/licenses/LICENSE,sha256=06Op63FCwGhuUOz__M8IZW5sxd29WxyGC4X5-Uih7IQ,1071
3
+ cyberdesk-2.1.4.dist-info/licenses/LICENSE,sha256=06Op63FCwGhuUOz__M8IZW5sxd29WxyGC4X5-Uih7IQ,1071
4
4
  openapi_client/cyberdesk_cloud_client/__init__.py,sha256=r_uVkNUL-SOK8j7-KiGMIKdinES5X8K1Q250ySX2F-A,158
5
5
  openapi_client/cyberdesk_cloud_client/client.py,sha256=o_mdLqyBCQstu5tS1WZFwqIEbGwkvWQ7eQjuCJw_5VY,12419
6
6
  openapi_client/cyberdesk_cloud_client/errors.py,sha256=gO8GBmKqmSNgAg-E5oT-oOyxztvp7V_6XG7OUTT15q0,546
@@ -27,6 +27,8 @@ openapi_client/cyberdesk_cloud_client/api/connections/get_connection_v1_connecti
27
27
  openapi_client/cyberdesk_cloud_client/api/connections/list_connections_v1_connections_get.py,sha256=_Q2lzJnx-P7lOWoEzf4BbggDrpPmoHmfpxGQCL_oQFA,7904
28
28
  openapi_client/cyberdesk_cloud_client/api/connections/update_connection_v1_connections_connection_id_patch.py,sha256=TchNjqT0iaL7EfM4PXhAKKpAUPmX7j4x1Zp86-0CdqI,5735
29
29
  openapi_client/cyberdesk_cloud_client/api/default/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
30
+ openapi_client/cyberdesk_cloud_client/api/default/health_db_health_db_get.py,sha256=4NR-l__IXH49yrNO7Ri7KYnS_c7LQrpGAQstLLuKn44,2082
31
+ openapi_client/cyberdesk_cloud_client/api/default/health_health_get.py,sha256=6PcNUPSNqD1KGgiws7sTbwlWKrnZ-06mO1mZ-8zXv1M,3525
30
32
  openapi_client/cyberdesk_cloud_client/api/default/root_get.py,sha256=Wba5aa7-F_8KDoW6hjr4yRWtftT42lTUrNzMlhmBc8A,2153
31
33
  openapi_client/cyberdesk_cloud_client/api/health/__init__.py,sha256=5vd9uJWAjRqa9xzxzYkLD1yoZ12Ld_bAaNB5WX4fbE8,56
32
34
  openapi_client/cyberdesk_cloud_client/api/health/database_health_check_v1_health_db_get.py,sha256=uxeoQZ9HTbG-MsUC4iod-IbF3Zg0fhcRSanN0fu5krc,4464
@@ -84,7 +86,7 @@ openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_v1_workflows_wo
84
86
  openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_versions_v1_workflows_workflow_id_versions_get.py,sha256=ax_5V-lIClvOxr50eXSIAPbyhWP-cS4a4DXzwdxkVYs,5889
85
87
  openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_get.py,sha256=Aszxh1BlUuRqMHjT7lvZf8g6kDCcNUZtuwoJqhDOwlQ,11258
86
88
  openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py,sha256=K_tuO6s_FyM8MUOck5AuX_RNIeYqCQcfYx1aDg9xwhE,5737
87
- openapi_client/cyberdesk_cloud_client/models/__init__.py,sha256=0ugs0zih1w9kwt_QLTVvvaEsPMioEojAgMJ0RfLKRS0,8891
89
+ openapi_client/cyberdesk_cloud_client/models/__init__.py,sha256=jhkqOlsuTqRD9AdBq_sfofxjFboTY1a5pCIKHGIaTV4,9110
88
90
  openapi_client/cyberdesk_cloud_client/models/attachment_type.py,sha256=zqPOsSd2AmxGNqb5HQ6ZYBAYL8k-0UbWHhfAJYNHoro,161
89
91
  openapi_client/cyberdesk_cloud_client/models/connection_create.py,sha256=gCI36DmjJDZxzGFPbykyYw9k4QEf_4dVNz9b-xZfLo4,3288
90
92
  openapi_client/cyberdesk_cloud_client/models/connection_response.py,sha256=aFxqJX75wSEw5dZ-kvh3Wgv_haJ6xYJ7o72vSAbEtHY,5247
@@ -99,6 +101,7 @@ openapi_client/cyberdesk_cloud_client/models/fs_read_v1_computer_machine_id_fs_r
99
101
  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,sha256=RLeOMxpL9PFC66efgfdvMJmLi9JwzVPPPwPbp080NKU,1606
100
102
  openapi_client/cyberdesk_cloud_client/models/get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_item.py,sha256=awMbgNS26JsLsyyRMKYHP_BGi9g5VKSVK65z-v4p35g,1505
101
103
  openapi_client/cyberdesk_cloud_client/models/health_check_v1_health_get_response_health_check_v1_health_get.py,sha256=xiy1oRClleq7BPHm8Ud_qd03gVkN9uI23PCm0PkLRNY,1432
104
+ openapi_client/cyberdesk_cloud_client/models/health_health_get_response_health_health_get.py,sha256=U5TAIElNkb_NDo05djoNHt7znKpz_HVEtWm2oe6Tj7c,1350
102
105
  openapi_client/cyberdesk_cloud_client/models/http_validation_error.py,sha256=OvQ-alRPbtXXwrQunI1Cp1-BWf7ZkVHkigk-YVMFXN0,2213
103
106
  openapi_client/cyberdesk_cloud_client/models/keyboard_key_request.py,sha256=iZ2uFo_pgZ59xX04hJZpl49dfVLqTchtAYVUWZX8MEM,1475
104
107
  openapi_client/cyberdesk_cloud_client/models/keyboard_type_request.py,sha256=Jgzt14kcl8kfdEJYI3BSnHgxVbFnUIUjBQDF1ly-vIY,1480
@@ -137,6 +140,7 @@ openapi_client/cyberdesk_cloud_client/models/run_attachment_update.py,sha256=rGX
137
140
  openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py,sha256=CyZJONbhXWLndS_Mh1tx53eGh9qSz4qoiaI53N-CvJs,7951
138
141
  openapi_client/cyberdesk_cloud_client/models/run_bulk_create_input_values_type_0.py,sha256=JxGOOYKueFx5NtvnXgf9z_sXbMByQrsjjQ3AmU8qG30,1305
139
142
  openapi_client/cyberdesk_cloud_client/models/run_bulk_create_response.py,sha256=N9sMykvm6pC2fMMH_XVQI8wVc6-53qAHMb_qbNBo9-c,2886
143
+ openapi_client/cyberdesk_cloud_client/models/run_completed_event.py,sha256=JP4okhYCwpnbyORLVz-C9zUMcNt7FlVIjbpuG61bKFo,3415
140
144
  openapi_client/cyberdesk_cloud_client/models/run_create.py,sha256=C_l48nK5DhWNNdjZ7pGQkiquP57lmNj4KI1pklpwhco,7684
141
145
  openapi_client/cyberdesk_cloud_client/models/run_create_input_values_type_0.py,sha256=APV4O0GduU3fhHoJHMMOBk-h92Hf21c1ZU-pIsJoZpg,1282
142
146
  openapi_client/cyberdesk_cloud_client/models/run_response.py,sha256=H9rKD3JYcOy8Lp_IB6eOYXw5Nx7K11wRNVi4xJZ_NuU,13779
@@ -148,22 +152,22 @@ openapi_client/cyberdesk_cloud_client/models/run_update.py,sha256=EY8zP-Dd3WgGNd
148
152
  openapi_client/cyberdesk_cloud_client/models/run_update_input_values_type_0.py,sha256=Dg_CSahXf_M8x7go8K0BoUrHWnoKpc6l-IFPeT15DNk,1282
149
153
  openapi_client/cyberdesk_cloud_client/models/run_update_output_data_type_0.py,sha256=XyksD89ENT2TgzGiS7bU32rs1rHSFAhiamjz78nUft4,1277
150
154
  openapi_client/cyberdesk_cloud_client/models/run_update_run_message_history_type_0_item.py,sha256=j-SrGOc1EgVNQlUk189qUzQLBYCgBvzR23yjvZ71LGw,1338
151
- openapi_client/cyberdesk_cloud_client/models/trajectory_create.py,sha256=vd9Y1v4kU4QbtDw6qBR6uDYL6BVGrTw9H6Km-IYXrwY,5133
155
+ openapi_client/cyberdesk_cloud_client/models/trajectory_create.py,sha256=zSniVutKhLEH7QmJ4xoYCICTl5gPq_JNhlxVDlMD6aI,6481
152
156
  openapi_client/cyberdesk_cloud_client/models/trajectory_create_dimensions.py,sha256=PRX7oM8sseKD0nhJsQ8SYP4aOzjkMtfcza7_jWFVl9Y,1324
153
157
  openapi_client/cyberdesk_cloud_client/models/trajectory_create_original_input_values_type_0.py,sha256=Rz80esN5_oDA-dXeZ9WFhe6POtNJXWvZjoOqw1KUVJM,1360
154
158
  openapi_client/cyberdesk_cloud_client/models/trajectory_create_trajectory_data_item.py,sha256=_8TzdjPWMx4YzsSTCiA_45R2TrNjWhu3nlknQ8KCy_U,1324
155
- openapi_client/cyberdesk_cloud_client/models/trajectory_response.py,sha256=HC7zPIdsPma6ccM07CfA5VTdDjHlcX7whj1K3Y1IGZg,7672
159
+ openapi_client/cyberdesk_cloud_client/models/trajectory_response.py,sha256=kdW1TehIHTigyLz4MMq6cCf6jxx4xX753p8dyxXHV3M,9020
156
160
  openapi_client/cyberdesk_cloud_client/models/trajectory_response_dimensions.py,sha256=MG0Le6-JKmCF9oIymTWw1BSNYuk61CX8-EJCWhSRUjE,1334
157
161
  openapi_client/cyberdesk_cloud_client/models/trajectory_response_original_input_values_type_0.py,sha256=ZzFZTF9Z3U8WJWrH8J5yaUOd9QN0v_T8wW9LQgYoEC8,1370
158
162
  openapi_client/cyberdesk_cloud_client/models/trajectory_response_trajectory_data_item.py,sha256=h0JpPrd5qzo3ue4l9jBXk-R49ipVr75W_RsZw6e5cjk,1334
159
- openapi_client/cyberdesk_cloud_client/models/trajectory_update.py,sha256=dzqD6zAT-jySWaASRi833gpHmahpkXd_r3LMD3-M8Lw,3568
163
+ openapi_client/cyberdesk_cloud_client/models/trajectory_update.py,sha256=EF-O37EgyVd9qmdMZk7frNFsSdiiWC7_ZWEoDGMxWnY,4916
160
164
  openapi_client/cyberdesk_cloud_client/models/trajectory_update_trajectory_data_type_0_item.py,sha256=3Zt8-nV3ZHjXzL1y5xKQdrHb-7ILG4EjHvtA4xabde4,1355
161
165
  openapi_client/cyberdesk_cloud_client/models/validation_error.py,sha256=ZlK9hbhWr4zSC-dxZh9giERvMiYf9s2k8e1O9Rch_NI,2181
162
- openapi_client/cyberdesk_cloud_client/models/workflow_create.py,sha256=Z7XG8k1js_cXclCJKEBV_xk25mgr3BDuYgPLuQcXWEk,3490
163
- openapi_client/cyberdesk_cloud_client/models/workflow_response.py,sha256=Z4ABOHurTjNfQh1odBbEZ5YW3agm63QklKdE-gzu6dQ,8539
166
+ openapi_client/cyberdesk_cloud_client/models/workflow_create.py,sha256=d0bfNbNBF3RADrNcTiMeGm61NuV0c-6tB-S06ZxFdY4,3928
167
+ openapi_client/cyberdesk_cloud_client/models/workflow_response.py,sha256=k48mouJ6Dcisz2vyM7Rb_cbjU66JudGVPsq4UC7grHA,8977
164
168
  openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py,sha256=W9AxxlBlN3rUwLDcoUx5H7MUiYA9UztfX9iEpNGlgAs,1340
165
- openapi_client/cyberdesk_cloud_client/models/workflow_update.py,sha256=_zMo2mJbYdKILygBXwebAD37SJJCUZOTkJkMOCzeNTA,4439
166
- cyberdesk-2.1.2.dist-info/METADATA,sha256=n8OWVXska1HdRSVA-n27qw07AgNyPCDoMe56BGJDNZk,6791
167
- cyberdesk-2.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
168
- cyberdesk-2.1.2.dist-info/top_level.txt,sha256=qTYHZHVHh3VClNPQsiFFA8p8tmJgFGhq9G1COd-pX_A,25
169
- cyberdesk-2.1.2.dist-info/RECORD,,
169
+ openapi_client/cyberdesk_cloud_client/models/workflow_update.py,sha256=TG2jEitXixS2thtz7lTxTZaE0RBVSWd-apVxWxsvnrg,5333
170
+ cyberdesk-2.1.4.dist-info/METADATA,sha256=01tWJEDv0N-kx0yVS_CCDo7mudddz34Tv9cfpoTMZF8,6791
171
+ cyberdesk-2.1.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
172
+ cyberdesk-2.1.4.dist-info/top_level.txt,sha256=qTYHZHVHh3VClNPQsiFFA8p8tmJgFGhq9G1COd-pX_A,25
173
+ cyberdesk-2.1.4.dist-info/RECORD,,
@@ -0,0 +1,79 @@
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 ...types import Response
9
+
10
+
11
+ def _get_kwargs() -> dict[str, Any]:
12
+ _kwargs: dict[str, Any] = {
13
+ "method": "get",
14
+ "url": "/health/db",
15
+ }
16
+
17
+ return _kwargs
18
+
19
+
20
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
21
+ if response.status_code == 200:
22
+ return None
23
+ if client.raise_on_unexpected_status:
24
+ raise errors.UnexpectedStatus(response.status_code, response.content)
25
+ else:
26
+ return None
27
+
28
+
29
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
30
+ return Response(
31
+ status_code=HTTPStatus(response.status_code),
32
+ content=response.content,
33
+ headers=response.headers,
34
+ parsed=_parse_response(client=client, response=response),
35
+ )
36
+
37
+
38
+ def sync_detailed(
39
+ *,
40
+ client: Union[AuthenticatedClient, Client],
41
+ ) -> Response[Any]:
42
+ """Health Db
43
+
44
+ Raises:
45
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
46
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
47
+
48
+ Returns:
49
+ Response[Any]
50
+ """
51
+
52
+ kwargs = _get_kwargs()
53
+
54
+ response = client.get_httpx_client().request(
55
+ **kwargs,
56
+ )
57
+
58
+ return _build_response(client=client, response=response)
59
+
60
+
61
+ async def asyncio_detailed(
62
+ *,
63
+ client: Union[AuthenticatedClient, Client],
64
+ ) -> Response[Any]:
65
+ """Health Db
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[Any]
73
+ """
74
+
75
+ kwargs = _get_kwargs()
76
+
77
+ response = await client.get_async_httpx_client().request(**kwargs)
78
+
79
+ return _build_response(client=client, response=response)
@@ -0,0 +1,126 @@
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.health_health_get_response_health_health_get import HealthHealthGetResponseHealthHealthGet
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs() -> dict[str, Any]:
13
+ _kwargs: dict[str, Any] = {
14
+ "method": "get",
15
+ "url": "/health",
16
+ }
17
+
18
+ return _kwargs
19
+
20
+
21
+ def _parse_response(
22
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
23
+ ) -> Optional[HealthHealthGetResponseHealthHealthGet]:
24
+ if response.status_code == 200:
25
+ response_200 = HealthHealthGetResponseHealthHealthGet.from_dict(response.json())
26
+
27
+ return response_200
28
+ if client.raise_on_unexpected_status:
29
+ raise errors.UnexpectedStatus(response.status_code, response.content)
30
+ else:
31
+ return None
32
+
33
+
34
+ def _build_response(
35
+ *, client: Union[AuthenticatedClient, Client], response: httpx.Response
36
+ ) -> Response[HealthHealthGetResponseHealthHealthGet]:
37
+ return Response(
38
+ status_code=HTTPStatus(response.status_code),
39
+ content=response.content,
40
+ headers=response.headers,
41
+ parsed=_parse_response(client=client, response=response),
42
+ )
43
+
44
+
45
+ def sync_detailed(
46
+ *,
47
+ client: Union[AuthenticatedClient, Client],
48
+ ) -> Response[HealthHealthGetResponseHealthHealthGet]:
49
+ """Health
50
+
51
+ Raises:
52
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
53
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
54
+
55
+ Returns:
56
+ Response[HealthHealthGetResponseHealthHealthGet]
57
+ """
58
+
59
+ kwargs = _get_kwargs()
60
+
61
+ response = client.get_httpx_client().request(
62
+ **kwargs,
63
+ )
64
+
65
+ return _build_response(client=client, response=response)
66
+
67
+
68
+ def sync(
69
+ *,
70
+ client: Union[AuthenticatedClient, Client],
71
+ ) -> Optional[HealthHealthGetResponseHealthHealthGet]:
72
+ """Health
73
+
74
+ Raises:
75
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
76
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
77
+
78
+ Returns:
79
+ HealthHealthGetResponseHealthHealthGet
80
+ """
81
+
82
+ return sync_detailed(
83
+ client=client,
84
+ ).parsed
85
+
86
+
87
+ async def asyncio_detailed(
88
+ *,
89
+ client: Union[AuthenticatedClient, Client],
90
+ ) -> Response[HealthHealthGetResponseHealthHealthGet]:
91
+ """Health
92
+
93
+ Raises:
94
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
95
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
96
+
97
+ Returns:
98
+ Response[HealthHealthGetResponseHealthHealthGet]
99
+ """
100
+
101
+ kwargs = _get_kwargs()
102
+
103
+ response = await client.get_async_httpx_client().request(**kwargs)
104
+
105
+ return _build_response(client=client, response=response)
106
+
107
+
108
+ async def asyncio(
109
+ *,
110
+ client: Union[AuthenticatedClient, Client],
111
+ ) -> Optional[HealthHealthGetResponseHealthHealthGet]:
112
+ """Health
113
+
114
+ Raises:
115
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
116
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
117
+
118
+ Returns:
119
+ HealthHealthGetResponseHealthHealthGet
120
+ """
121
+
122
+ return (
123
+ await asyncio_detailed(
124
+ client=client,
125
+ )
126
+ ).parsed
@@ -28,6 +28,7 @@ from .get_workflow_versions_v1_workflows_workflow_id_versions_get_response_200_i
28
28
  from .health_check_v1_health_get_response_health_check_v1_health_get import (
29
29
  HealthCheckV1HealthGetResponseHealthCheckV1HealthGet,
30
30
  )
31
+ from .health_health_get_response_health_health_get import HealthHealthGetResponseHealthHealthGet
31
32
  from .http_validation_error import HTTPValidationError
32
33
  from .keyboard_key_request import KeyboardKeyRequest
33
34
  from .keyboard_type_request import KeyboardTypeRequest
@@ -70,6 +71,7 @@ from .run_attachment_update import RunAttachmentUpdate
70
71
  from .run_bulk_create import RunBulkCreate
71
72
  from .run_bulk_create_input_values_type_0 import RunBulkCreateInputValuesType0
72
73
  from .run_bulk_create_response import RunBulkCreateResponse
74
+ from .run_completed_event import RunCompletedEvent
73
75
  from .run_create import RunCreate
74
76
  from .run_create_input_values_type_0 import RunCreateInputValuesType0
75
77
  from .run_response import RunResponse
@@ -112,6 +114,7 @@ __all__ = (
112
114
  "FsWriteV1ComputerMachineIdFsWritePostResponseFsWriteV1ComputerMachineIdFsWritePost",
113
115
  "GetWorkflowVersionsV1WorkflowsWorkflowIdVersionsGetResponse200Item",
114
116
  "HealthCheckV1HealthGetResponseHealthCheckV1HealthGet",
117
+ "HealthHealthGetResponseHealthHealthGet",
115
118
  "HTTPValidationError",
116
119
  "KeyboardKeyRequest",
117
120
  "KeyboardTypeRequest",
@@ -150,6 +153,7 @@ __all__ = (
150
153
  "RunBulkCreate",
151
154
  "RunBulkCreateInputValuesType0",
152
155
  "RunBulkCreateResponse",
156
+ "RunCompletedEvent",
153
157
  "RunCreate",
154
158
  "RunCreateInputValuesType0",
155
159
  "RunResponse",
@@ -0,0 +1,44 @@
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="HealthHealthGetResponseHealthHealthGet")
8
+
9
+
10
+ @_attrs_define
11
+ class HealthHealthGetResponseHealthHealthGet:
12
+ """ """
13
+
14
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
15
+
16
+ def to_dict(self) -> dict[str, Any]:
17
+ field_dict: dict[str, Any] = {}
18
+ field_dict.update(self.additional_properties)
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
24
+ d = dict(src_dict)
25
+ health_health_get_response_health_health_get = cls()
26
+
27
+ health_health_get_response_health_health_get.additional_properties = d
28
+ return health_health_get_response_health_health_get
29
+
30
+ @property
31
+ def additional_keys(self) -> list[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> Any:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: Any) -> None:
38
+ self.additional_properties[key] = value
39
+
40
+ def __delitem__(self, key: str) -> None:
41
+ del self.additional_properties[key]
42
+
43
+ def __contains__(self, key: str) -> bool:
44
+ return key in self.additional_properties
@@ -0,0 +1,112 @@
1
+ import datetime
2
+ from collections.abc import Mapping
3
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
4
+ from uuid import UUID
5
+
6
+ from attrs import define as _attrs_define
7
+ from attrs import field as _attrs_field
8
+ from dateutil.parser import isoparse
9
+
10
+ from ..types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.run_response import RunResponse
14
+
15
+
16
+ T = TypeVar("T", bound="RunCompletedEvent")
17
+
18
+
19
+ @_attrs_define
20
+ class RunCompletedEvent:
21
+ """Payload sent for the run_complete webhook event.
22
+
23
+ Attributes:
24
+ run (RunResponse): Run response schema
25
+ event_id (Union[Unset, UUID]): Unique event identifier for idempotency
26
+ event_type (Union[Unset, str]): Event type key Default: 'run_complete'.
27
+ occurred_at (Union[Unset, datetime.datetime]): Time the event occurred (UTC)
28
+ """
29
+
30
+ run: "RunResponse"
31
+ event_id: Union[Unset, UUID] = UNSET
32
+ event_type: Union[Unset, str] = "run_complete"
33
+ occurred_at: Union[Unset, datetime.datetime] = UNSET
34
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ run = self.run.to_dict()
38
+
39
+ event_id: Union[Unset, str] = UNSET
40
+ if not isinstance(self.event_id, Unset):
41
+ event_id = str(self.event_id)
42
+
43
+ event_type = self.event_type
44
+
45
+ occurred_at: Union[Unset, str] = UNSET
46
+ if not isinstance(self.occurred_at, Unset):
47
+ occurred_at = self.occurred_at.isoformat()
48
+
49
+ field_dict: dict[str, Any] = {}
50
+ field_dict.update(self.additional_properties)
51
+ field_dict.update(
52
+ {
53
+ "run": run,
54
+ }
55
+ )
56
+ if event_id is not UNSET:
57
+ field_dict["event_id"] = event_id
58
+ if event_type is not UNSET:
59
+ field_dict["event_type"] = event_type
60
+ if occurred_at is not UNSET:
61
+ field_dict["occurred_at"] = occurred_at
62
+
63
+ return field_dict
64
+
65
+ @classmethod
66
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
67
+ from ..models.run_response import RunResponse
68
+
69
+ d = dict(src_dict)
70
+ run = RunResponse.from_dict(d.pop("run"))
71
+
72
+ _event_id = d.pop("event_id", UNSET)
73
+ event_id: Union[Unset, UUID]
74
+ if isinstance(_event_id, Unset):
75
+ event_id = UNSET
76
+ else:
77
+ event_id = UUID(_event_id)
78
+
79
+ event_type = d.pop("event_type", UNSET)
80
+
81
+ _occurred_at = d.pop("occurred_at", UNSET)
82
+ occurred_at: Union[Unset, datetime.datetime]
83
+ if isinstance(_occurred_at, Unset):
84
+ occurred_at = UNSET
85
+ else:
86
+ occurred_at = isoparse(_occurred_at)
87
+
88
+ run_completed_event = cls(
89
+ run=run,
90
+ event_id=event_id,
91
+ event_type=event_type,
92
+ occurred_at=occurred_at,
93
+ )
94
+
95
+ run_completed_event.additional_properties = d
96
+ return run_completed_event
97
+
98
+ @property
99
+ def additional_keys(self) -> list[str]:
100
+ return list(self.additional_properties.keys())
101
+
102
+ def __getitem__(self, key: str) -> Any:
103
+ return self.additional_properties[key]
104
+
105
+ def __setitem__(self, key: str, value: Any) -> None:
106
+ self.additional_properties[key] = value
107
+
108
+ def __delitem__(self, key: str) -> None:
109
+ del self.additional_properties[key]
110
+
111
+ def __contains__(self, key: str) -> bool:
112
+ return key in self.additional_properties
@@ -24,6 +24,8 @@ class TrajectoryCreate:
24
24
  workflow_id (UUID):
25
25
  trajectory_data (list['TrajectoryCreateTrajectoryDataItem']):
26
26
  dimensions (TrajectoryCreateDimensions): Display dimensions when trajectory was recorded
27
+ name (Union[None, Unset, str]):
28
+ description (Union[None, Unset, str]):
27
29
  original_input_values (Union['TrajectoryCreateOriginalInputValuesType0', None, Unset]): Original input values
28
30
  used when trajectory was created
29
31
  """
@@ -31,6 +33,8 @@ class TrajectoryCreate:
31
33
  workflow_id: UUID
32
34
  trajectory_data: list["TrajectoryCreateTrajectoryDataItem"]
33
35
  dimensions: "TrajectoryCreateDimensions"
36
+ name: Union[None, Unset, str] = UNSET
37
+ description: Union[None, Unset, str] = UNSET
34
38
  original_input_values: Union["TrajectoryCreateOriginalInputValuesType0", None, Unset] = UNSET
35
39
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
36
40
 
@@ -46,6 +50,18 @@ class TrajectoryCreate:
46
50
 
47
51
  dimensions = self.dimensions.to_dict()
48
52
 
53
+ name: Union[None, Unset, str]
54
+ if isinstance(self.name, Unset):
55
+ name = UNSET
56
+ else:
57
+ name = self.name
58
+
59
+ description: Union[None, Unset, str]
60
+ if isinstance(self.description, Unset):
61
+ description = UNSET
62
+ else:
63
+ description = self.description
64
+
49
65
  original_input_values: Union[None, Unset, dict[str, Any]]
50
66
  if isinstance(self.original_input_values, Unset):
51
67
  original_input_values = UNSET
@@ -63,6 +79,10 @@ class TrajectoryCreate:
63
79
  "dimensions": dimensions,
64
80
  }
65
81
  )
82
+ if name is not UNSET:
83
+ field_dict["name"] = name
84
+ if description is not UNSET:
85
+ field_dict["description"] = description
66
86
  if original_input_values is not UNSET:
67
87
  field_dict["original_input_values"] = original_input_values
68
88
 
@@ -86,6 +106,24 @@ class TrajectoryCreate:
86
106
 
87
107
  dimensions = TrajectoryCreateDimensions.from_dict(d.pop("dimensions"))
88
108
 
109
+ def _parse_name(data: object) -> Union[None, Unset, str]:
110
+ if data is None:
111
+ return data
112
+ if isinstance(data, Unset):
113
+ return data
114
+ return cast(Union[None, Unset, str], data)
115
+
116
+ name = _parse_name(d.pop("name", UNSET))
117
+
118
+ def _parse_description(data: object) -> Union[None, Unset, str]:
119
+ if data is None:
120
+ return data
121
+ if isinstance(data, Unset):
122
+ return data
123
+ return cast(Union[None, Unset, str], data)
124
+
125
+ description = _parse_description(d.pop("description", UNSET))
126
+
89
127
  def _parse_original_input_values(
90
128
  data: object,
91
129
  ) -> Union["TrajectoryCreateOriginalInputValuesType0", None, Unset]:
@@ -109,6 +147,8 @@ class TrajectoryCreate:
109
147
  workflow_id=workflow_id,
110
148
  trajectory_data=trajectory_data,
111
149
  dimensions=dimensions,
150
+ name=name,
151
+ description=description,
112
152
  original_input_values=original_input_values,
113
153
  )
114
154
 
@@ -29,6 +29,8 @@ class TrajectoryResponse:
29
29
  id (UUID):
30
30
  created_at (datetime.datetime):
31
31
  updated_at (datetime.datetime):
32
+ name (Union[None, Unset, str]):
33
+ description (Union[None, Unset, str]):
32
34
  original_input_values (Union['TrajectoryResponseOriginalInputValuesType0', None, Unset]): Original input values
33
35
  used when trajectory was created
34
36
  user_id (Union[None, UUID, Unset]):
@@ -41,6 +43,8 @@ class TrajectoryResponse:
41
43
  id: UUID
42
44
  created_at: datetime.datetime
43
45
  updated_at: datetime.datetime
46
+ name: Union[None, Unset, str] = UNSET
47
+ description: Union[None, Unset, str] = UNSET
44
48
  original_input_values: Union["TrajectoryResponseOriginalInputValuesType0", None, Unset] = UNSET
45
49
  user_id: Union[None, UUID, Unset] = UNSET
46
50
  organization_id: Union[None, Unset, str] = UNSET
@@ -64,6 +68,18 @@ class TrajectoryResponse:
64
68
 
65
69
  updated_at = self.updated_at.isoformat()
66
70
 
71
+ name: Union[None, Unset, str]
72
+ if isinstance(self.name, Unset):
73
+ name = UNSET
74
+ else:
75
+ name = self.name
76
+
77
+ description: Union[None, Unset, str]
78
+ if isinstance(self.description, Unset):
79
+ description = UNSET
80
+ else:
81
+ description = self.description
82
+
67
83
  original_input_values: Union[None, Unset, dict[str, Any]]
68
84
  if isinstance(self.original_input_values, Unset):
69
85
  original_input_values = UNSET
@@ -98,6 +114,10 @@ class TrajectoryResponse:
98
114
  "updated_at": updated_at,
99
115
  }
100
116
  )
117
+ if name is not UNSET:
118
+ field_dict["name"] = name
119
+ if description is not UNSET:
120
+ field_dict["description"] = description
101
121
  if original_input_values is not UNSET:
102
122
  field_dict["original_input_values"] = original_input_values
103
123
  if user_id is not UNSET:
@@ -131,6 +151,24 @@ class TrajectoryResponse:
131
151
 
132
152
  updated_at = isoparse(d.pop("updated_at"))
133
153
 
154
+ def _parse_name(data: object) -> Union[None, Unset, str]:
155
+ if data is None:
156
+ return data
157
+ if isinstance(data, Unset):
158
+ return data
159
+ return cast(Union[None, Unset, str], data)
160
+
161
+ name = _parse_name(d.pop("name", UNSET))
162
+
163
+ def _parse_description(data: object) -> Union[None, Unset, str]:
164
+ if data is None:
165
+ return data
166
+ if isinstance(data, Unset):
167
+ return data
168
+ return cast(Union[None, Unset, str], data)
169
+
170
+ description = _parse_description(d.pop("description", UNSET))
171
+
134
172
  def _parse_original_input_values(
135
173
  data: object,
136
174
  ) -> Union["TrajectoryResponseOriginalInputValuesType0", None, Unset]:
@@ -183,6 +221,8 @@ class TrajectoryResponse:
183
221
  id=id,
184
222
  created_at=created_at,
185
223
  updated_at=updated_at,
224
+ name=name,
225
+ description=description,
186
226
  original_input_values=original_input_values,
187
227
  user_id=user_id,
188
228
  organization_id=organization_id,
@@ -18,13 +18,29 @@ class TrajectoryUpdate:
18
18
  """Schema for updating a trajectory
19
19
 
20
20
  Attributes:
21
+ name (Union[None, Unset, str]):
22
+ description (Union[None, Unset, str]):
21
23
  trajectory_data (Union[None, Unset, list['TrajectoryUpdateTrajectoryDataType0Item']]):
22
24
  """
23
25
 
26
+ name: Union[None, Unset, str] = UNSET
27
+ description: Union[None, Unset, str] = UNSET
24
28
  trajectory_data: Union[None, Unset, list["TrajectoryUpdateTrajectoryDataType0Item"]] = UNSET
25
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
26
30
 
27
31
  def to_dict(self) -> dict[str, Any]:
32
+ name: Union[None, Unset, str]
33
+ if isinstance(self.name, Unset):
34
+ name = UNSET
35
+ else:
36
+ name = self.name
37
+
38
+ description: Union[None, Unset, str]
39
+ if isinstance(self.description, Unset):
40
+ description = UNSET
41
+ else:
42
+ description = self.description
43
+
28
44
  trajectory_data: Union[None, Unset, list[dict[str, Any]]]
29
45
  if isinstance(self.trajectory_data, Unset):
30
46
  trajectory_data = UNSET
@@ -40,6 +56,10 @@ class TrajectoryUpdate:
40
56
  field_dict: dict[str, Any] = {}
41
57
  field_dict.update(self.additional_properties)
42
58
  field_dict.update({})
59
+ if name is not UNSET:
60
+ field_dict["name"] = name
61
+ if description is not UNSET:
62
+ field_dict["description"] = description
43
63
  if trajectory_data is not UNSET:
44
64
  field_dict["trajectory_data"] = trajectory_data
45
65
 
@@ -51,6 +71,24 @@ class TrajectoryUpdate:
51
71
 
52
72
  d = dict(src_dict)
53
73
 
74
+ def _parse_name(data: object) -> Union[None, Unset, str]:
75
+ if data is None:
76
+ return data
77
+ if isinstance(data, Unset):
78
+ return data
79
+ return cast(Union[None, Unset, str], data)
80
+
81
+ name = _parse_name(d.pop("name", UNSET))
82
+
83
+ def _parse_description(data: object) -> Union[None, Unset, str]:
84
+ if data is None:
85
+ return data
86
+ if isinstance(data, Unset):
87
+ return data
88
+ return cast(Union[None, Unset, str], data)
89
+
90
+ description = _parse_description(d.pop("description", UNSET))
91
+
54
92
  def _parse_trajectory_data(data: object) -> Union[None, Unset, list["TrajectoryUpdateTrajectoryDataType0Item"]]:
55
93
  if data is None:
56
94
  return data
@@ -76,6 +114,8 @@ class TrajectoryUpdate:
76
114
  trajectory_data = _parse_trajectory_data(d.pop("trajectory_data", UNSET))
77
115
 
78
116
  trajectory_update = cls(
117
+ name=name,
118
+ description=description,
79
119
  trajectory_data=trajectory_data,
80
120
  )
81
121
 
@@ -18,12 +18,14 @@ class WorkflowCreate:
18
18
  name (Union[None, Unset, str]):
19
19
  output_schema (Union[None, Unset, str]): JSON schema for output data transformation
20
20
  includes_file_exports (Union[Unset, bool]): Enable AI-based file export detection Default: False.
21
+ is_webhooks_enabled (Union[Unset, bool]): Send webhook on run completion Default: False.
21
22
  """
22
23
 
23
24
  main_prompt: str
24
25
  name: Union[None, Unset, str] = UNSET
25
26
  output_schema: Union[None, Unset, str] = UNSET
26
27
  includes_file_exports: Union[Unset, bool] = False
28
+ is_webhooks_enabled: Union[Unset, bool] = False
27
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
30
 
29
31
  def to_dict(self) -> dict[str, Any]:
@@ -43,6 +45,8 @@ class WorkflowCreate:
43
45
 
44
46
  includes_file_exports = self.includes_file_exports
45
47
 
48
+ is_webhooks_enabled = self.is_webhooks_enabled
49
+
46
50
  field_dict: dict[str, Any] = {}
47
51
  field_dict.update(self.additional_properties)
48
52
  field_dict.update(
@@ -56,6 +60,8 @@ class WorkflowCreate:
56
60
  field_dict["output_schema"] = output_schema
57
61
  if includes_file_exports is not UNSET:
58
62
  field_dict["includes_file_exports"] = includes_file_exports
63
+ if is_webhooks_enabled is not UNSET:
64
+ field_dict["is_webhooks_enabled"] = is_webhooks_enabled
59
65
 
60
66
  return field_dict
61
67
 
@@ -84,11 +90,14 @@ class WorkflowCreate:
84
90
 
85
91
  includes_file_exports = d.pop("includes_file_exports", UNSET)
86
92
 
93
+ is_webhooks_enabled = d.pop("is_webhooks_enabled", UNSET)
94
+
87
95
  workflow_create = cls(
88
96
  main_prompt=main_prompt,
89
97
  name=name,
90
98
  output_schema=output_schema,
91
99
  includes_file_exports=includes_file_exports,
100
+ is_webhooks_enabled=is_webhooks_enabled,
92
101
  )
93
102
 
94
103
  workflow_create.additional_properties = d
@@ -28,6 +28,7 @@ class WorkflowResponse:
28
28
  name (Union[None, Unset, str]):
29
29
  output_schema (Union[None, Unset, str]): JSON schema for output data transformation
30
30
  includes_file_exports (Union[Unset, bool]): Enable AI-based file export detection Default: False.
31
+ is_webhooks_enabled (Union[Unset, bool]): Send webhook on run completion Default: False.
31
32
  user_id (Union[None, UUID, Unset]):
32
33
  organization_id (Union[None, Unset, str]):
33
34
  includes_input_variables (Union[Unset, bool]): Default: False.
@@ -41,6 +42,7 @@ class WorkflowResponse:
41
42
  name: Union[None, Unset, str] = UNSET
42
43
  output_schema: Union[None, Unset, str] = UNSET
43
44
  includes_file_exports: Union[Unset, bool] = False
45
+ is_webhooks_enabled: Union[Unset, bool] = False
44
46
  user_id: Union[None, UUID, Unset] = UNSET
45
47
  organization_id: Union[None, Unset, str] = UNSET
46
48
  includes_input_variables: Union[Unset, bool] = False
@@ -70,6 +72,8 @@ class WorkflowResponse:
70
72
 
71
73
  includes_file_exports = self.includes_file_exports
72
74
 
75
+ is_webhooks_enabled = self.is_webhooks_enabled
76
+
73
77
  user_id: Union[None, Unset, str]
74
78
  if isinstance(self.user_id, Unset):
75
79
  user_id = UNSET
@@ -114,6 +118,8 @@ class WorkflowResponse:
114
118
  field_dict["output_schema"] = output_schema
115
119
  if includes_file_exports is not UNSET:
116
120
  field_dict["includes_file_exports"] = includes_file_exports
121
+ if is_webhooks_enabled is not UNSET:
122
+ field_dict["is_webhooks_enabled"] = is_webhooks_enabled
117
123
  if user_id is not UNSET:
118
124
  field_dict["user_id"] = user_id
119
125
  if organization_id is not UNSET:
@@ -158,6 +164,8 @@ class WorkflowResponse:
158
164
 
159
165
  includes_file_exports = d.pop("includes_file_exports", UNSET)
160
166
 
167
+ is_webhooks_enabled = d.pop("is_webhooks_enabled", UNSET)
168
+
161
169
  def _parse_user_id(data: object) -> Union[None, UUID, Unset]:
162
170
  if data is None:
163
171
  return data
@@ -218,6 +226,7 @@ class WorkflowResponse:
218
226
  name=name,
219
227
  output_schema=output_schema,
220
228
  includes_file_exports=includes_file_exports,
229
+ is_webhooks_enabled=is_webhooks_enabled,
221
230
  user_id=user_id,
222
231
  organization_id=organization_id,
223
232
  includes_input_variables=includes_input_variables,
@@ -18,12 +18,14 @@ class WorkflowUpdate:
18
18
  main_prompt (Union[None, Unset, str]):
19
19
  output_schema (Union[None, Unset, str]): JSON schema for output data transformation
20
20
  includes_file_exports (Union[None, Unset, bool]): Enable AI-based file export detection
21
+ is_webhooks_enabled (Union[None, Unset, bool]): Send webhook on run completion
21
22
  """
22
23
 
23
24
  name: Union[None, Unset, str] = UNSET
24
25
  main_prompt: Union[None, Unset, str] = UNSET
25
26
  output_schema: Union[None, Unset, str] = UNSET
26
27
  includes_file_exports: Union[None, Unset, bool] = UNSET
28
+ is_webhooks_enabled: Union[None, Unset, bool] = UNSET
27
29
  additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
28
30
 
29
31
  def to_dict(self) -> dict[str, Any]:
@@ -51,6 +53,12 @@ class WorkflowUpdate:
51
53
  else:
52
54
  includes_file_exports = self.includes_file_exports
53
55
 
56
+ is_webhooks_enabled: Union[None, Unset, bool]
57
+ if isinstance(self.is_webhooks_enabled, Unset):
58
+ is_webhooks_enabled = UNSET
59
+ else:
60
+ is_webhooks_enabled = self.is_webhooks_enabled
61
+
54
62
  field_dict: dict[str, Any] = {}
55
63
  field_dict.update(self.additional_properties)
56
64
  field_dict.update({})
@@ -62,6 +70,8 @@ class WorkflowUpdate:
62
70
  field_dict["output_schema"] = output_schema
63
71
  if includes_file_exports is not UNSET:
64
72
  field_dict["includes_file_exports"] = includes_file_exports
73
+ if is_webhooks_enabled is not UNSET:
74
+ field_dict["is_webhooks_enabled"] = is_webhooks_enabled
65
75
 
66
76
  return field_dict
67
77
 
@@ -105,11 +115,21 @@ class WorkflowUpdate:
105
115
 
106
116
  includes_file_exports = _parse_includes_file_exports(d.pop("includes_file_exports", UNSET))
107
117
 
118
+ def _parse_is_webhooks_enabled(data: object) -> Union[None, Unset, bool]:
119
+ if data is None:
120
+ return data
121
+ if isinstance(data, Unset):
122
+ return data
123
+ return cast(Union[None, Unset, bool], data)
124
+
125
+ is_webhooks_enabled = _parse_is_webhooks_enabled(d.pop("is_webhooks_enabled", UNSET))
126
+
108
127
  workflow_update = cls(
109
128
  name=name,
110
129
  main_prompt=main_prompt,
111
130
  output_schema=output_schema,
112
131
  includes_file_exports=includes_file_exports,
132
+ is_webhooks_enabled=is_webhooks_enabled,
113
133
  )
114
134
 
115
135
  workflow_update.additional_properties = d