cyberdesk 2.1.3__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.3"
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.3
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=Y49H4FbqwBh6lAdy-gbEsQD5WL9wVVmdv4wK1NkaBn8,1157
1
+ cyberdesk/__init__.py,sha256=P_WW_HA8MjPDBEKUJjUByCT4Rc32m6uQm__vuzCcJk4,1157
2
2
  cyberdesk/client.py,sha256=uRclPvQCGqpToajKZxDoam_97H3edH1SDMeui2HiN6Y,62002
3
- cyberdesk-2.1.3.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
@@ -86,7 +86,7 @@ openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_v1_workflows_wo
86
86
  openapi_client/cyberdesk_cloud_client/api/workflows/get_workflow_versions_v1_workflows_workflow_id_versions_get.py,sha256=ax_5V-lIClvOxr50eXSIAPbyhWP-cS4a4DXzwdxkVYs,5889
87
87
  openapi_client/cyberdesk_cloud_client/api/workflows/list_workflows_v1_workflows_get.py,sha256=Aszxh1BlUuRqMHjT7lvZf8g6kDCcNUZtuwoJqhDOwlQ,11258
88
88
  openapi_client/cyberdesk_cloud_client/api/workflows/update_workflow_v1_workflows_workflow_id_patch.py,sha256=K_tuO6s_FyM8MUOck5AuX_RNIeYqCQcfYx1aDg9xwhE,5737
89
- openapi_client/cyberdesk_cloud_client/models/__init__.py,sha256=83LvmGuj56PGtkjcStmw4xDXmBzvj4IId3iwLjxlV3I,9034
89
+ openapi_client/cyberdesk_cloud_client/models/__init__.py,sha256=jhkqOlsuTqRD9AdBq_sfofxjFboTY1a5pCIKHGIaTV4,9110
90
90
  openapi_client/cyberdesk_cloud_client/models/attachment_type.py,sha256=zqPOsSd2AmxGNqb5HQ6ZYBAYL8k-0UbWHhfAJYNHoro,161
91
91
  openapi_client/cyberdesk_cloud_client/models/connection_create.py,sha256=gCI36DmjJDZxzGFPbykyYw9k4QEf_4dVNz9b-xZfLo4,3288
92
92
  openapi_client/cyberdesk_cloud_client/models/connection_response.py,sha256=aFxqJX75wSEw5dZ-kvh3Wgv_haJ6xYJ7o72vSAbEtHY,5247
@@ -140,6 +140,7 @@ openapi_client/cyberdesk_cloud_client/models/run_attachment_update.py,sha256=rGX
140
140
  openapi_client/cyberdesk_cloud_client/models/run_bulk_create.py,sha256=CyZJONbhXWLndS_Mh1tx53eGh9qSz4qoiaI53N-CvJs,7951
141
141
  openapi_client/cyberdesk_cloud_client/models/run_bulk_create_input_values_type_0.py,sha256=JxGOOYKueFx5NtvnXgf9z_sXbMByQrsjjQ3AmU8qG30,1305
142
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
143
144
  openapi_client/cyberdesk_cloud_client/models/run_create.py,sha256=C_l48nK5DhWNNdjZ7pGQkiquP57lmNj4KI1pklpwhco,7684
144
145
  openapi_client/cyberdesk_cloud_client/models/run_create_input_values_type_0.py,sha256=APV4O0GduU3fhHoJHMMOBk-h92Hf21c1ZU-pIsJoZpg,1282
145
146
  openapi_client/cyberdesk_cloud_client/models/run_response.py,sha256=H9rKD3JYcOy8Lp_IB6eOYXw5Nx7K11wRNVi4xJZ_NuU,13779
@@ -162,11 +163,11 @@ openapi_client/cyberdesk_cloud_client/models/trajectory_response_trajectory_data
162
163
  openapi_client/cyberdesk_cloud_client/models/trajectory_update.py,sha256=EF-O37EgyVd9qmdMZk7frNFsSdiiWC7_ZWEoDGMxWnY,4916
163
164
  openapi_client/cyberdesk_cloud_client/models/trajectory_update_trajectory_data_type_0_item.py,sha256=3Zt8-nV3ZHjXzL1y5xKQdrHb-7ILG4EjHvtA4xabde4,1355
164
165
  openapi_client/cyberdesk_cloud_client/models/validation_error.py,sha256=ZlK9hbhWr4zSC-dxZh9giERvMiYf9s2k8e1O9Rch_NI,2181
165
- openapi_client/cyberdesk_cloud_client/models/workflow_create.py,sha256=Z7XG8k1js_cXclCJKEBV_xk25mgr3BDuYgPLuQcXWEk,3490
166
- 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
167
168
  openapi_client/cyberdesk_cloud_client/models/workflow_response_old_versions_type_0_item.py,sha256=W9AxxlBlN3rUwLDcoUx5H7MUiYA9UztfX9iEpNGlgAs,1340
168
- openapi_client/cyberdesk_cloud_client/models/workflow_update.py,sha256=_zMo2mJbYdKILygBXwebAD37SJJCUZOTkJkMOCzeNTA,4439
169
- cyberdesk-2.1.3.dist-info/METADATA,sha256=J3_A7MT_NCCPn7MBrNZtS5irx-YnLJC1LQmRE2cNJNk,6791
170
- cyberdesk-2.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
171
- cyberdesk-2.1.3.dist-info/top_level.txt,sha256=qTYHZHVHh3VClNPQsiFFA8p8tmJgFGhq9G1COd-pX_A,25
172
- cyberdesk-2.1.3.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,,
@@ -71,6 +71,7 @@ from .run_attachment_update import RunAttachmentUpdate
71
71
  from .run_bulk_create import RunBulkCreate
72
72
  from .run_bulk_create_input_values_type_0 import RunBulkCreateInputValuesType0
73
73
  from .run_bulk_create_response import RunBulkCreateResponse
74
+ from .run_completed_event import RunCompletedEvent
74
75
  from .run_create import RunCreate
75
76
  from .run_create_input_values_type_0 import RunCreateInputValuesType0
76
77
  from .run_response import RunResponse
@@ -152,6 +153,7 @@ __all__ = (
152
153
  "RunBulkCreate",
153
154
  "RunBulkCreateInputValuesType0",
154
155
  "RunBulkCreateResponse",
156
+ "RunCompletedEvent",
155
157
  "RunCreate",
156
158
  "RunCreateInputValuesType0",
157
159
  "RunResponse",
@@ -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
@@ -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