windmill-api 1.464.0__py3-none-any.whl → 1.465.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 windmill-api might be problematic. Click here for more details.

Files changed (57) hide show
  1. windmill_api/api/sqs_trigger/__init__.py +0 -0
  2. windmill_api/api/sqs_trigger/create_sqs_trigger.py +105 -0
  3. windmill_api/api/sqs_trigger/delete_sqs_trigger.py +101 -0
  4. windmill_api/api/sqs_trigger/exists_sqs_trigger.py +160 -0
  5. windmill_api/api/sqs_trigger/get_sqs_trigger.py +166 -0
  6. windmill_api/api/sqs_trigger/list_sqs_triggers.py +237 -0
  7. windmill_api/api/sqs_trigger/set_sqs_trigger_enabled.py +113 -0
  8. windmill_api/api/sqs_trigger/test_sqs_connection.py +105 -0
  9. windmill_api/api/sqs_trigger/update_sqs_trigger.py +113 -0
  10. windmill_api/models/add_granular_acls_kind.py +1 -0
  11. windmill_api/models/capture_config_trigger_kind.py +1 -0
  12. windmill_api/models/capture_trigger_kind.py +1 -0
  13. windmill_api/models/create_sqs_trigger_json_body.py +107 -0
  14. windmill_api/models/edit_sqs_trigger.py +105 -0
  15. windmill_api/models/get_capture_configs_response_200_item_trigger_kind.py +1 -0
  16. windmill_api/models/get_capture_response_200_trigger_kind.py +1 -0
  17. windmill_api/models/get_granular_acls_kind.py +1 -0
  18. windmill_api/models/get_http_trigger_response_200.py +21 -21
  19. windmill_api/models/get_kafka_trigger_response_200.py +47 -47
  20. windmill_api/models/get_nats_trigger_response_200.py +47 -47
  21. windmill_api/models/get_postgres_trigger_response_200.py +21 -21
  22. windmill_api/models/get_sqs_trigger_response_200.py +183 -0
  23. windmill_api/models/get_sqs_trigger_response_200_extra_perms.py +44 -0
  24. windmill_api/models/get_triggers_count_of_flow_response_200.py +8 -0
  25. windmill_api/models/get_triggers_count_of_script_response_200.py +8 -0
  26. windmill_api/models/get_used_triggers_response_200.py +7 -0
  27. windmill_api/models/get_websocket_trigger_response_200.py +21 -21
  28. windmill_api/models/http_trigger.py +21 -21
  29. windmill_api/models/kafka_trigger.py +47 -47
  30. windmill_api/models/list_captures_response_200_item_trigger_kind.py +1 -0
  31. windmill_api/models/list_captures_trigger_kind.py +1 -0
  32. windmill_api/models/list_http_triggers_response_200_item.py +21 -21
  33. windmill_api/models/list_kafka_triggers_response_200_item.py +47 -47
  34. windmill_api/models/list_nats_triggers_response_200_item.py +47 -47
  35. windmill_api/models/list_postgres_triggers_response_200_item.py +21 -21
  36. windmill_api/models/list_sqs_triggers_response_200_item.py +183 -0
  37. windmill_api/models/list_sqs_triggers_response_200_item_extra_perms.py +44 -0
  38. windmill_api/models/list_websocket_triggers_response_200_item.py +21 -21
  39. windmill_api/models/nats_trigger.py +47 -47
  40. windmill_api/models/new_sqs_trigger.py +107 -0
  41. windmill_api/models/ping_capture_config_trigger_kind.py +1 -0
  42. windmill_api/models/postgres_trigger.py +21 -21
  43. windmill_api/models/remove_granular_acls_kind.py +1 -0
  44. windmill_api/models/set_capture_config_json_body_trigger_kind.py +1 -0
  45. windmill_api/models/set_sqs_trigger_enabled_json_body.py +58 -0
  46. windmill_api/models/sqs_trigger.py +183 -0
  47. windmill_api/models/sqs_trigger_extra_perms.py +44 -0
  48. windmill_api/models/test_sqs_connection_json_body.py +64 -0
  49. windmill_api/models/test_sqs_connection_json_body_connection.py +44 -0
  50. windmill_api/models/trigger_extra_property.py +22 -0
  51. windmill_api/models/triggers_count.py +8 -0
  52. windmill_api/models/update_sqs_trigger_json_body.py +105 -0
  53. windmill_api/models/websocket_trigger.py +21 -21
  54. {windmill_api-1.464.0.dist-info → windmill_api-1.465.0.dist-info}/METADATA +1 -1
  55. {windmill_api-1.464.0.dist-info → windmill_api-1.465.0.dist-info}/RECORD +57 -35
  56. {windmill_api-1.464.0.dist-info → windmill_api-1.465.0.dist-info}/LICENSE +0 -0
  57. {windmill_api-1.464.0.dist-info → windmill_api-1.465.0.dist-info}/WHEEL +0 -0
@@ -18,18 +18,18 @@ T = TypeVar("T", bound="NatsTrigger")
18
18
  class NatsTrigger:
19
19
  """
20
20
  Attributes:
21
- path (str):
22
- edited_by (str):
23
- edited_at (datetime.datetime):
24
- script_path (str):
25
21
  nats_resource_path (str):
26
22
  use_jetstream (bool):
27
23
  subjects (List[str]):
28
- is_flow (bool):
29
- extra_perms (NatsTriggerExtraPerms):
24
+ enabled (bool):
25
+ path (str):
26
+ script_path (str):
30
27
  email (str):
28
+ extra_perms (NatsTriggerExtraPerms):
31
29
  workspace_id (str):
32
- enabled (bool):
30
+ edited_by (str):
31
+ edited_at (datetime.datetime):
32
+ is_flow (bool):
33
33
  stream_name (Union[Unset, str]):
34
34
  consumer_name (Union[Unset, str]):
35
35
  server_id (Union[Unset, str]):
@@ -37,18 +37,18 @@ class NatsTrigger:
37
37
  error (Union[Unset, str]):
38
38
  """
39
39
 
40
- path: str
41
- edited_by: str
42
- edited_at: datetime.datetime
43
- script_path: str
44
40
  nats_resource_path: str
45
41
  use_jetstream: bool
46
42
  subjects: List[str]
47
- is_flow: bool
48
- extra_perms: "NatsTriggerExtraPerms"
43
+ enabled: bool
44
+ path: str
45
+ script_path: str
49
46
  email: str
47
+ extra_perms: "NatsTriggerExtraPerms"
50
48
  workspace_id: str
51
- enabled: bool
49
+ edited_by: str
50
+ edited_at: datetime.datetime
51
+ is_flow: bool
52
52
  stream_name: Union[Unset, str] = UNSET
53
53
  consumer_name: Union[Unset, str] = UNSET
54
54
  server_id: Union[Unset, str] = UNSET
@@ -57,21 +57,21 @@ class NatsTrigger:
57
57
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
58
58
 
59
59
  def to_dict(self) -> Dict[str, Any]:
60
- path = self.path
61
- edited_by = self.edited_by
62
- edited_at = self.edited_at.isoformat()
63
-
64
- script_path = self.script_path
65
60
  nats_resource_path = self.nats_resource_path
66
61
  use_jetstream = self.use_jetstream
67
62
  subjects = self.subjects
68
63
 
69
- is_flow = self.is_flow
64
+ enabled = self.enabled
65
+ path = self.path
66
+ script_path = self.script_path
67
+ email = self.email
70
68
  extra_perms = self.extra_perms.to_dict()
71
69
 
72
- email = self.email
73
70
  workspace_id = self.workspace_id
74
- enabled = self.enabled
71
+ edited_by = self.edited_by
72
+ edited_at = self.edited_at.isoformat()
73
+
74
+ is_flow = self.is_flow
75
75
  stream_name = self.stream_name
76
76
  consumer_name = self.consumer_name
77
77
  server_id = self.server_id
@@ -85,18 +85,18 @@ class NatsTrigger:
85
85
  field_dict.update(self.additional_properties)
86
86
  field_dict.update(
87
87
  {
88
- "path": path,
89
- "edited_by": edited_by,
90
- "edited_at": edited_at,
91
- "script_path": script_path,
92
88
  "nats_resource_path": nats_resource_path,
93
89
  "use_jetstream": use_jetstream,
94
90
  "subjects": subjects,
95
- "is_flow": is_flow,
96
- "extra_perms": extra_perms,
91
+ "enabled": enabled,
92
+ "path": path,
93
+ "script_path": script_path,
97
94
  "email": email,
95
+ "extra_perms": extra_perms,
98
96
  "workspace_id": workspace_id,
99
- "enabled": enabled,
97
+ "edited_by": edited_by,
98
+ "edited_at": edited_at,
99
+ "is_flow": is_flow,
100
100
  }
101
101
  )
102
102
  if stream_name is not UNSET:
@@ -117,29 +117,29 @@ class NatsTrigger:
117
117
  from ..models.nats_trigger_extra_perms import NatsTriggerExtraPerms
118
118
 
119
119
  d = src_dict.copy()
120
- path = d.pop("path")
121
-
122
- edited_by = d.pop("edited_by")
123
-
124
- edited_at = isoparse(d.pop("edited_at"))
125
-
126
- script_path = d.pop("script_path")
127
-
128
120
  nats_resource_path = d.pop("nats_resource_path")
129
121
 
130
122
  use_jetstream = d.pop("use_jetstream")
131
123
 
132
124
  subjects = cast(List[str], d.pop("subjects"))
133
125
 
134
- is_flow = d.pop("is_flow")
126
+ enabled = d.pop("enabled")
135
127
 
136
- extra_perms = NatsTriggerExtraPerms.from_dict(d.pop("extra_perms"))
128
+ path = d.pop("path")
129
+
130
+ script_path = d.pop("script_path")
137
131
 
138
132
  email = d.pop("email")
139
133
 
134
+ extra_perms = NatsTriggerExtraPerms.from_dict(d.pop("extra_perms"))
135
+
140
136
  workspace_id = d.pop("workspace_id")
141
137
 
142
- enabled = d.pop("enabled")
138
+ edited_by = d.pop("edited_by")
139
+
140
+ edited_at = isoparse(d.pop("edited_at"))
141
+
142
+ is_flow = d.pop("is_flow")
143
143
 
144
144
  stream_name = d.pop("stream_name", UNSET)
145
145
 
@@ -157,18 +157,18 @@ class NatsTrigger:
157
157
  error = d.pop("error", UNSET)
158
158
 
159
159
  nats_trigger = cls(
160
- path=path,
161
- edited_by=edited_by,
162
- edited_at=edited_at,
163
- script_path=script_path,
164
160
  nats_resource_path=nats_resource_path,
165
161
  use_jetstream=use_jetstream,
166
162
  subjects=subjects,
167
- is_flow=is_flow,
168
- extra_perms=extra_perms,
163
+ enabled=enabled,
164
+ path=path,
165
+ script_path=script_path,
169
166
  email=email,
167
+ extra_perms=extra_perms,
170
168
  workspace_id=workspace_id,
171
- enabled=enabled,
169
+ edited_by=edited_by,
170
+ edited_at=edited_at,
171
+ is_flow=is_flow,
172
172
  stream_name=stream_name,
173
173
  consumer_name=consumer_name,
174
174
  server_id=server_id,
@@ -0,0 +1,107 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="NewSqsTrigger")
9
+
10
+
11
+ @_attrs_define
12
+ class NewSqsTrigger:
13
+ """
14
+ Attributes:
15
+ queue_url (str):
16
+ aws_resource_path (str):
17
+ path (str):
18
+ script_path (str):
19
+ is_flow (bool):
20
+ message_attributes (Union[Unset, List[str]]):
21
+ enabled (Union[Unset, bool]):
22
+ """
23
+
24
+ queue_url: str
25
+ aws_resource_path: str
26
+ path: str
27
+ script_path: str
28
+ is_flow: bool
29
+ message_attributes: Union[Unset, List[str]] = UNSET
30
+ enabled: Union[Unset, bool] = UNSET
31
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
32
+
33
+ def to_dict(self) -> Dict[str, Any]:
34
+ queue_url = self.queue_url
35
+ aws_resource_path = self.aws_resource_path
36
+ path = self.path
37
+ script_path = self.script_path
38
+ is_flow = self.is_flow
39
+ message_attributes: Union[Unset, List[str]] = UNSET
40
+ if not isinstance(self.message_attributes, Unset):
41
+ message_attributes = self.message_attributes
42
+
43
+ enabled = self.enabled
44
+
45
+ field_dict: Dict[str, Any] = {}
46
+ field_dict.update(self.additional_properties)
47
+ field_dict.update(
48
+ {
49
+ "queue_url": queue_url,
50
+ "aws_resource_path": aws_resource_path,
51
+ "path": path,
52
+ "script_path": script_path,
53
+ "is_flow": is_flow,
54
+ }
55
+ )
56
+ if message_attributes is not UNSET:
57
+ field_dict["message_attributes"] = message_attributes
58
+ if enabled is not UNSET:
59
+ field_dict["enabled"] = enabled
60
+
61
+ return field_dict
62
+
63
+ @classmethod
64
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
65
+ d = src_dict.copy()
66
+ queue_url = d.pop("queue_url")
67
+
68
+ aws_resource_path = d.pop("aws_resource_path")
69
+
70
+ path = d.pop("path")
71
+
72
+ script_path = d.pop("script_path")
73
+
74
+ is_flow = d.pop("is_flow")
75
+
76
+ message_attributes = cast(List[str], d.pop("message_attributes", UNSET))
77
+
78
+ enabled = d.pop("enabled", UNSET)
79
+
80
+ new_sqs_trigger = cls(
81
+ queue_url=queue_url,
82
+ aws_resource_path=aws_resource_path,
83
+ path=path,
84
+ script_path=script_path,
85
+ is_flow=is_flow,
86
+ message_attributes=message_attributes,
87
+ enabled=enabled,
88
+ )
89
+
90
+ new_sqs_trigger.additional_properties = d
91
+ return new_sqs_trigger
92
+
93
+ @property
94
+ def additional_keys(self) -> List[str]:
95
+ return list(self.additional_properties.keys())
96
+
97
+ def __getitem__(self, key: str) -> Any:
98
+ return self.additional_properties[key]
99
+
100
+ def __setitem__(self, key: str, value: Any) -> None:
101
+ self.additional_properties[key] = value
102
+
103
+ def __delitem__(self, key: str) -> None:
104
+ del self.additional_properties[key]
105
+
106
+ def __contains__(self, key: str) -> bool:
107
+ return key in self.additional_properties
@@ -7,6 +7,7 @@ class PingCaptureConfigTriggerKind(str, Enum):
7
7
  KAFKA = "kafka"
8
8
  NATS = "nats"
9
9
  POSTGRES = "postgres"
10
+ SQS = "sqs"
10
11
  WEBHOOK = "webhook"
11
12
  WEBSOCKET = "websocket"
12
13
 
@@ -18,48 +18,47 @@ T = TypeVar("T", bound="PostgresTrigger")
18
18
  class PostgresTrigger:
19
19
  """
20
20
  Attributes:
21
- path (str):
22
- script_path (str):
23
- is_flow (bool):
24
21
  enabled (bool):
25
22
  postgres_resource_path (str):
26
23
  publication_name (str):
27
24
  replication_slot_name (str):
25
+ path (str):
26
+ script_path (str):
28
27
  email (str):
29
28
  extra_perms (PostgresTriggerExtraPerms):
30
29
  workspace_id (str):
31
30
  edited_by (str):
32
31
  edited_at (datetime.datetime):
32
+ is_flow (bool):
33
33
  server_id (Union[Unset, str]):
34
34
  error (Union[Unset, str]):
35
35
  last_server_ping (Union[Unset, datetime.datetime]):
36
36
  """
37
37
 
38
- path: str
39
- script_path: str
40
- is_flow: bool
41
38
  enabled: bool
42
39
  postgres_resource_path: str
43
40
  publication_name: str
44
41
  replication_slot_name: str
42
+ path: str
43
+ script_path: str
45
44
  email: str
46
45
  extra_perms: "PostgresTriggerExtraPerms"
47
46
  workspace_id: str
48
47
  edited_by: str
49
48
  edited_at: datetime.datetime
49
+ is_flow: bool
50
50
  server_id: Union[Unset, str] = UNSET
51
51
  error: Union[Unset, str] = UNSET
52
52
  last_server_ping: Union[Unset, datetime.datetime] = UNSET
53
53
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
54
54
 
55
55
  def to_dict(self) -> Dict[str, Any]:
56
- path = self.path
57
- script_path = self.script_path
58
- is_flow = self.is_flow
59
56
  enabled = self.enabled
60
57
  postgres_resource_path = self.postgres_resource_path
61
58
  publication_name = self.publication_name
62
59
  replication_slot_name = self.replication_slot_name
60
+ path = self.path
61
+ script_path = self.script_path
63
62
  email = self.email
64
63
  extra_perms = self.extra_perms.to_dict()
65
64
 
@@ -67,6 +66,7 @@ class PostgresTrigger:
67
66
  edited_by = self.edited_by
68
67
  edited_at = self.edited_at.isoformat()
69
68
 
69
+ is_flow = self.is_flow
70
70
  server_id = self.server_id
71
71
  error = self.error
72
72
  last_server_ping: Union[Unset, str] = UNSET
@@ -77,18 +77,18 @@ class PostgresTrigger:
77
77
  field_dict.update(self.additional_properties)
78
78
  field_dict.update(
79
79
  {
80
- "path": path,
81
- "script_path": script_path,
82
- "is_flow": is_flow,
83
80
  "enabled": enabled,
84
81
  "postgres_resource_path": postgres_resource_path,
85
82
  "publication_name": publication_name,
86
83
  "replication_slot_name": replication_slot_name,
84
+ "path": path,
85
+ "script_path": script_path,
87
86
  "email": email,
88
87
  "extra_perms": extra_perms,
89
88
  "workspace_id": workspace_id,
90
89
  "edited_by": edited_by,
91
90
  "edited_at": edited_at,
91
+ "is_flow": is_flow,
92
92
  }
93
93
  )
94
94
  if server_id is not UNSET:
@@ -105,12 +105,6 @@ class PostgresTrigger:
105
105
  from ..models.postgres_trigger_extra_perms import PostgresTriggerExtraPerms
106
106
 
107
107
  d = src_dict.copy()
108
- path = d.pop("path")
109
-
110
- script_path = d.pop("script_path")
111
-
112
- is_flow = d.pop("is_flow")
113
-
114
108
  enabled = d.pop("enabled")
115
109
 
116
110
  postgres_resource_path = d.pop("postgres_resource_path")
@@ -119,6 +113,10 @@ class PostgresTrigger:
119
113
 
120
114
  replication_slot_name = d.pop("replication_slot_name")
121
115
 
116
+ path = d.pop("path")
117
+
118
+ script_path = d.pop("script_path")
119
+
122
120
  email = d.pop("email")
123
121
 
124
122
  extra_perms = PostgresTriggerExtraPerms.from_dict(d.pop("extra_perms"))
@@ -129,6 +127,8 @@ class PostgresTrigger:
129
127
 
130
128
  edited_at = isoparse(d.pop("edited_at"))
131
129
 
130
+ is_flow = d.pop("is_flow")
131
+
132
132
  server_id = d.pop("server_id", UNSET)
133
133
 
134
134
  error = d.pop("error", UNSET)
@@ -141,18 +141,18 @@ class PostgresTrigger:
141
141
  last_server_ping = isoparse(_last_server_ping)
142
142
 
143
143
  postgres_trigger = cls(
144
- path=path,
145
- script_path=script_path,
146
- is_flow=is_flow,
147
144
  enabled=enabled,
148
145
  postgres_resource_path=postgres_resource_path,
149
146
  publication_name=publication_name,
150
147
  replication_slot_name=replication_slot_name,
148
+ path=path,
149
+ script_path=script_path,
151
150
  email=email,
152
151
  extra_perms=extra_perms,
153
152
  workspace_id=workspace_id,
154
153
  edited_by=edited_by,
155
154
  edited_at=edited_at,
155
+ is_flow=is_flow,
156
156
  server_id=server_id,
157
157
  error=error,
158
158
  last_server_ping=last_server_ping,
@@ -14,6 +14,7 @@ class RemoveGranularAclsKind(str, Enum):
14
14
  RESOURCE = "resource"
15
15
  SCHEDULE = "schedule"
16
16
  SCRIPT = "script"
17
+ SQS_TRIGGER = "sqs_trigger"
17
18
  VARIABLE = "variable"
18
19
  WEBSOCKET_TRIGGER = "websocket_trigger"
19
20
 
@@ -7,6 +7,7 @@ class SetCaptureConfigJsonBodyTriggerKind(str, Enum):
7
7
  KAFKA = "kafka"
8
8
  NATS = "nats"
9
9
  POSTGRES = "postgres"
10
+ SQS = "sqs"
10
11
  WEBHOOK = "webhook"
11
12
  WEBSOCKET = "websocket"
12
13
 
@@ -0,0 +1,58 @@
1
+ from typing import Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="SetSqsTriggerEnabledJsonBody")
7
+
8
+
9
+ @_attrs_define
10
+ class SetSqsTriggerEnabledJsonBody:
11
+ """
12
+ Attributes:
13
+ enabled (bool):
14
+ """
15
+
16
+ enabled: bool
17
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
18
+
19
+ def to_dict(self) -> Dict[str, Any]:
20
+ enabled = self.enabled
21
+
22
+ field_dict: Dict[str, Any] = {}
23
+ field_dict.update(self.additional_properties)
24
+ field_dict.update(
25
+ {
26
+ "enabled": enabled,
27
+ }
28
+ )
29
+
30
+ return field_dict
31
+
32
+ @classmethod
33
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
34
+ d = src_dict.copy()
35
+ enabled = d.pop("enabled")
36
+
37
+ set_sqs_trigger_enabled_json_body = cls(
38
+ enabled=enabled,
39
+ )
40
+
41
+ set_sqs_trigger_enabled_json_body.additional_properties = d
42
+ return set_sqs_trigger_enabled_json_body
43
+
44
+ @property
45
+ def additional_keys(self) -> List[str]:
46
+ return list(self.additional_properties.keys())
47
+
48
+ def __getitem__(self, key: str) -> Any:
49
+ return self.additional_properties[key]
50
+
51
+ def __setitem__(self, key: str, value: Any) -> None:
52
+ self.additional_properties[key] = value
53
+
54
+ def __delitem__(self, key: str) -> None:
55
+ del self.additional_properties[key]
56
+
57
+ def __contains__(self, key: str) -> bool:
58
+ return key in self.additional_properties
@@ -0,0 +1,183 @@
1
+ import datetime
2
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..types import UNSET, Unset
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.sqs_trigger_extra_perms import SqsTriggerExtraPerms
12
+
13
+
14
+ T = TypeVar("T", bound="SqsTrigger")
15
+
16
+
17
+ @_attrs_define
18
+ class SqsTrigger:
19
+ """
20
+ Attributes:
21
+ queue_url (str):
22
+ aws_resource_path (str):
23
+ enabled (bool):
24
+ path (str):
25
+ script_path (str):
26
+ email (str):
27
+ extra_perms (SqsTriggerExtraPerms):
28
+ workspace_id (str):
29
+ edited_by (str):
30
+ edited_at (datetime.datetime):
31
+ is_flow (bool):
32
+ message_attributes (Union[Unset, List[str]]):
33
+ server_id (Union[Unset, str]):
34
+ last_server_ping (Union[Unset, datetime.datetime]):
35
+ error (Union[Unset, str]):
36
+ """
37
+
38
+ queue_url: str
39
+ aws_resource_path: str
40
+ enabled: bool
41
+ path: str
42
+ script_path: str
43
+ email: str
44
+ extra_perms: "SqsTriggerExtraPerms"
45
+ workspace_id: str
46
+ edited_by: str
47
+ edited_at: datetime.datetime
48
+ is_flow: bool
49
+ message_attributes: Union[Unset, List[str]] = UNSET
50
+ server_id: Union[Unset, str] = UNSET
51
+ last_server_ping: Union[Unset, datetime.datetime] = UNSET
52
+ error: Union[Unset, str] = UNSET
53
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
54
+
55
+ def to_dict(self) -> Dict[str, Any]:
56
+ queue_url = self.queue_url
57
+ aws_resource_path = self.aws_resource_path
58
+ enabled = self.enabled
59
+ path = self.path
60
+ script_path = self.script_path
61
+ email = self.email
62
+ extra_perms = self.extra_perms.to_dict()
63
+
64
+ workspace_id = self.workspace_id
65
+ edited_by = self.edited_by
66
+ edited_at = self.edited_at.isoformat()
67
+
68
+ is_flow = self.is_flow
69
+ message_attributes: Union[Unset, List[str]] = UNSET
70
+ if not isinstance(self.message_attributes, Unset):
71
+ message_attributes = self.message_attributes
72
+
73
+ server_id = self.server_id
74
+ last_server_ping: Union[Unset, str] = UNSET
75
+ if not isinstance(self.last_server_ping, Unset):
76
+ last_server_ping = self.last_server_ping.isoformat()
77
+
78
+ error = self.error
79
+
80
+ field_dict: Dict[str, Any] = {}
81
+ field_dict.update(self.additional_properties)
82
+ field_dict.update(
83
+ {
84
+ "queue_url": queue_url,
85
+ "aws_resource_path": aws_resource_path,
86
+ "enabled": enabled,
87
+ "path": path,
88
+ "script_path": script_path,
89
+ "email": email,
90
+ "extra_perms": extra_perms,
91
+ "workspace_id": workspace_id,
92
+ "edited_by": edited_by,
93
+ "edited_at": edited_at,
94
+ "is_flow": is_flow,
95
+ }
96
+ )
97
+ if message_attributes is not UNSET:
98
+ field_dict["message_attributes"] = message_attributes
99
+ if server_id is not UNSET:
100
+ field_dict["server_id"] = server_id
101
+ if last_server_ping is not UNSET:
102
+ field_dict["last_server_ping"] = last_server_ping
103
+ if error is not UNSET:
104
+ field_dict["error"] = error
105
+
106
+ return field_dict
107
+
108
+ @classmethod
109
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
110
+ from ..models.sqs_trigger_extra_perms import SqsTriggerExtraPerms
111
+
112
+ d = src_dict.copy()
113
+ queue_url = d.pop("queue_url")
114
+
115
+ aws_resource_path = d.pop("aws_resource_path")
116
+
117
+ enabled = d.pop("enabled")
118
+
119
+ path = d.pop("path")
120
+
121
+ script_path = d.pop("script_path")
122
+
123
+ email = d.pop("email")
124
+
125
+ extra_perms = SqsTriggerExtraPerms.from_dict(d.pop("extra_perms"))
126
+
127
+ workspace_id = d.pop("workspace_id")
128
+
129
+ edited_by = d.pop("edited_by")
130
+
131
+ edited_at = isoparse(d.pop("edited_at"))
132
+
133
+ is_flow = d.pop("is_flow")
134
+
135
+ message_attributes = cast(List[str], d.pop("message_attributes", UNSET))
136
+
137
+ server_id = d.pop("server_id", UNSET)
138
+
139
+ _last_server_ping = d.pop("last_server_ping", UNSET)
140
+ last_server_ping: Union[Unset, datetime.datetime]
141
+ if isinstance(_last_server_ping, Unset):
142
+ last_server_ping = UNSET
143
+ else:
144
+ last_server_ping = isoparse(_last_server_ping)
145
+
146
+ error = d.pop("error", UNSET)
147
+
148
+ sqs_trigger = cls(
149
+ queue_url=queue_url,
150
+ aws_resource_path=aws_resource_path,
151
+ enabled=enabled,
152
+ path=path,
153
+ script_path=script_path,
154
+ email=email,
155
+ extra_perms=extra_perms,
156
+ workspace_id=workspace_id,
157
+ edited_by=edited_by,
158
+ edited_at=edited_at,
159
+ is_flow=is_flow,
160
+ message_attributes=message_attributes,
161
+ server_id=server_id,
162
+ last_server_ping=last_server_ping,
163
+ error=error,
164
+ )
165
+
166
+ sqs_trigger.additional_properties = d
167
+ return sqs_trigger
168
+
169
+ @property
170
+ def additional_keys(self) -> List[str]:
171
+ return list(self.additional_properties.keys())
172
+
173
+ def __getitem__(self, key: str) -> Any:
174
+ return self.additional_properties[key]
175
+
176
+ def __setitem__(self, key: str, value: Any) -> None:
177
+ self.additional_properties[key] = value
178
+
179
+ def __delitem__(self, key: str) -> None:
180
+ del self.additional_properties[key]
181
+
182
+ def __contains__(self, key: str) -> bool:
183
+ return key in self.additional_properties