windmill-api 1.444.0__py3-none-any.whl → 1.445.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 (47) hide show
  1. windmill_api/api/nats_trigger/__init__.py +0 -0
  2. windmill_api/api/nats_trigger/create_nats_trigger.py +105 -0
  3. windmill_api/api/nats_trigger/delete_nats_trigger.py +101 -0
  4. windmill_api/api/nats_trigger/exists_nats_trigger.py +160 -0
  5. windmill_api/api/nats_trigger/get_nats_trigger.py +166 -0
  6. windmill_api/api/nats_trigger/list_nats_triggers.py +237 -0
  7. windmill_api/api/nats_trigger/set_nats_trigger_enabled.py +113 -0
  8. windmill_api/api/nats_trigger/update_nats_trigger.py +113 -0
  9. windmill_api/api/workspace/change_workspace_color.py +105 -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/change_workspace_color_json_body.py +58 -0
  14. windmill_api/models/create_nats_trigger_json_body.py +120 -0
  15. windmill_api/models/create_workspace.py +8 -0
  16. windmill_api/models/create_workspace_json_body.py +8 -0
  17. windmill_api/models/edit_nats_trigger.py +112 -0
  18. windmill_api/models/get_capture_configs_response_200_item_trigger_kind.py +1 -0
  19. windmill_api/models/get_granular_acls_kind.py +1 -0
  20. windmill_api/models/get_nats_trigger_response_200.py +196 -0
  21. windmill_api/models/get_nats_trigger_response_200_extra_perms.py +44 -0
  22. windmill_api/models/get_settings_response_200.py +8 -0
  23. windmill_api/models/get_triggers_count_of_flow_response_200.py +8 -0
  24. windmill_api/models/get_triggers_count_of_script_response_200.py +8 -0
  25. windmill_api/models/get_used_triggers_response_200.py +7 -0
  26. windmill_api/models/list_captures_response_200_item_trigger_kind.py +1 -0
  27. windmill_api/models/list_captures_trigger_kind.py +1 -0
  28. windmill_api/models/list_nats_triggers_response_200_item.py +196 -0
  29. windmill_api/models/list_nats_triggers_response_200_item_extra_perms.py +44 -0
  30. windmill_api/models/list_user_workspaces_response_200_workspaces_item.py +7 -0
  31. windmill_api/models/list_workspaces_as_super_admin_response_200_item.py +8 -0
  32. windmill_api/models/list_workspaces_response_200_item.py +8 -0
  33. windmill_api/models/nats_trigger.py +196 -0
  34. windmill_api/models/nats_trigger_extra_perms.py +44 -0
  35. windmill_api/models/new_nats_trigger.py +120 -0
  36. windmill_api/models/ping_capture_config_trigger_kind.py +1 -0
  37. windmill_api/models/remove_granular_acls_kind.py +1 -0
  38. windmill_api/models/set_capture_config_json_body_trigger_kind.py +1 -0
  39. windmill_api/models/set_nats_trigger_enabled_json_body.py +58 -0
  40. windmill_api/models/triggers_count.py +8 -0
  41. windmill_api/models/update_nats_trigger_json_body.py +112 -0
  42. windmill_api/models/user_workspace_list_workspaces_item.py +7 -0
  43. windmill_api/models/workspace.py +8 -0
  44. {windmill_api-1.444.0.dist-info → windmill_api-1.445.0.dist-info}/METADATA +1 -1
  45. {windmill_api-1.444.0.dist-info → windmill_api-1.445.0.dist-info}/RECORD +47 -26
  46. {windmill_api-1.444.0.dist-info → windmill_api-1.445.0.dist-info}/LICENSE +0 -0
  47. {windmill_api-1.444.0.dist-info → windmill_api-1.445.0.dist-info}/WHEEL +0 -0
@@ -25,6 +25,7 @@ class GetTriggersCountOfScriptResponse200:
25
25
  email_count (Union[Unset, float]):
26
26
  websocket_count (Union[Unset, float]):
27
27
  kafka_count (Union[Unset, float]):
28
+ nats_count (Union[Unset, float]):
28
29
  """
29
30
 
30
31
  primary_schedule: Union[Unset, "GetTriggersCountOfScriptResponse200PrimarySchedule"] = UNSET
@@ -34,6 +35,7 @@ class GetTriggersCountOfScriptResponse200:
34
35
  email_count: Union[Unset, float] = UNSET
35
36
  websocket_count: Union[Unset, float] = UNSET
36
37
  kafka_count: Union[Unset, float] = UNSET
38
+ nats_count: Union[Unset, float] = UNSET
37
39
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
38
40
 
39
41
  def to_dict(self) -> Dict[str, Any]:
@@ -47,6 +49,7 @@ class GetTriggersCountOfScriptResponse200:
47
49
  email_count = self.email_count
48
50
  websocket_count = self.websocket_count
49
51
  kafka_count = self.kafka_count
52
+ nats_count = self.nats_count
50
53
 
51
54
  field_dict: Dict[str, Any] = {}
52
55
  field_dict.update(self.additional_properties)
@@ -65,6 +68,8 @@ class GetTriggersCountOfScriptResponse200:
65
68
  field_dict["websocket_count"] = websocket_count
66
69
  if kafka_count is not UNSET:
67
70
  field_dict["kafka_count"] = kafka_count
71
+ if nats_count is not UNSET:
72
+ field_dict["nats_count"] = nats_count
68
73
 
69
74
  return field_dict
70
75
 
@@ -94,6 +99,8 @@ class GetTriggersCountOfScriptResponse200:
94
99
 
95
100
  kafka_count = d.pop("kafka_count", UNSET)
96
101
 
102
+ nats_count = d.pop("nats_count", UNSET)
103
+
97
104
  get_triggers_count_of_script_response_200 = cls(
98
105
  primary_schedule=primary_schedule,
99
106
  schedule_count=schedule_count,
@@ -102,6 +109,7 @@ class GetTriggersCountOfScriptResponse200:
102
109
  email_count=email_count,
103
110
  websocket_count=websocket_count,
104
111
  kafka_count=kafka_count,
112
+ nats_count=nats_count,
105
113
  )
106
114
 
107
115
  get_triggers_count_of_script_response_200.additional_properties = d
@@ -13,17 +13,20 @@ class GetUsedTriggersResponse200:
13
13
  http_routes_used (bool):
14
14
  websocket_used (bool):
15
15
  kafka_used (bool):
16
+ nats_used (bool):
16
17
  """
17
18
 
18
19
  http_routes_used: bool
19
20
  websocket_used: bool
20
21
  kafka_used: bool
22
+ nats_used: bool
21
23
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
24
 
23
25
  def to_dict(self) -> Dict[str, Any]:
24
26
  http_routes_used = self.http_routes_used
25
27
  websocket_used = self.websocket_used
26
28
  kafka_used = self.kafka_used
29
+ nats_used = self.nats_used
27
30
 
28
31
  field_dict: Dict[str, Any] = {}
29
32
  field_dict.update(self.additional_properties)
@@ -32,6 +35,7 @@ class GetUsedTriggersResponse200:
32
35
  "http_routes_used": http_routes_used,
33
36
  "websocket_used": websocket_used,
34
37
  "kafka_used": kafka_used,
38
+ "nats_used": nats_used,
35
39
  }
36
40
  )
37
41
 
@@ -46,10 +50,13 @@ class GetUsedTriggersResponse200:
46
50
 
47
51
  kafka_used = d.pop("kafka_used")
48
52
 
53
+ nats_used = d.pop("nats_used")
54
+
49
55
  get_used_triggers_response_200 = cls(
50
56
  http_routes_used=http_routes_used,
51
57
  websocket_used=websocket_used,
52
58
  kafka_used=kafka_used,
59
+ nats_used=nats_used,
53
60
  )
54
61
 
55
62
  get_used_triggers_response_200.additional_properties = d
@@ -5,6 +5,7 @@ class ListCapturesResponse200ItemTriggerKind(str, Enum):
5
5
  EMAIL = "email"
6
6
  HTTP = "http"
7
7
  KAFKA = "kafka"
8
+ NATS = "nats"
8
9
  WEBHOOK = "webhook"
9
10
  WEBSOCKET = "websocket"
10
11
 
@@ -5,6 +5,7 @@ class ListCapturesTriggerKind(str, Enum):
5
5
  EMAIL = "email"
6
6
  HTTP = "http"
7
7
  KAFKA = "kafka"
8
+ NATS = "nats"
8
9
  WEBHOOK = "webhook"
9
10
  WEBSOCKET = "websocket"
10
11
 
@@ -0,0 +1,196 @@
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.list_nats_triggers_response_200_item_extra_perms import ListNatsTriggersResponse200ItemExtraPerms
12
+
13
+
14
+ T = TypeVar("T", bound="ListNatsTriggersResponse200Item")
15
+
16
+
17
+ @_attrs_define
18
+ class ListNatsTriggersResponse200Item:
19
+ """
20
+ Attributes:
21
+ path (str):
22
+ edited_by (str):
23
+ edited_at (datetime.datetime):
24
+ script_path (str):
25
+ nats_resource_path (str):
26
+ use_jetstream (bool):
27
+ subjects (List[str]):
28
+ is_flow (bool):
29
+ extra_perms (ListNatsTriggersResponse200ItemExtraPerms):
30
+ email (str):
31
+ workspace_id (str):
32
+ enabled (bool):
33
+ stream_name (Union[Unset, str]):
34
+ consumer_name (Union[Unset, str]):
35
+ server_id (Union[Unset, str]):
36
+ last_server_ping (Union[Unset, datetime.datetime]):
37
+ error (Union[Unset, str]):
38
+ """
39
+
40
+ path: str
41
+ edited_by: str
42
+ edited_at: datetime.datetime
43
+ script_path: str
44
+ nats_resource_path: str
45
+ use_jetstream: bool
46
+ subjects: List[str]
47
+ is_flow: bool
48
+ extra_perms: "ListNatsTriggersResponse200ItemExtraPerms"
49
+ email: str
50
+ workspace_id: str
51
+ enabled: bool
52
+ stream_name: Union[Unset, str] = UNSET
53
+ consumer_name: Union[Unset, str] = UNSET
54
+ server_id: Union[Unset, str] = UNSET
55
+ last_server_ping: Union[Unset, datetime.datetime] = UNSET
56
+ error: Union[Unset, str] = UNSET
57
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
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
+ nats_resource_path = self.nats_resource_path
66
+ use_jetstream = self.use_jetstream
67
+ subjects = self.subjects
68
+
69
+ is_flow = self.is_flow
70
+ extra_perms = self.extra_perms.to_dict()
71
+
72
+ email = self.email
73
+ workspace_id = self.workspace_id
74
+ enabled = self.enabled
75
+ stream_name = self.stream_name
76
+ consumer_name = self.consumer_name
77
+ server_id = self.server_id
78
+ last_server_ping: Union[Unset, str] = UNSET
79
+ if not isinstance(self.last_server_ping, Unset):
80
+ last_server_ping = self.last_server_ping.isoformat()
81
+
82
+ error = self.error
83
+
84
+ field_dict: Dict[str, Any] = {}
85
+ field_dict.update(self.additional_properties)
86
+ field_dict.update(
87
+ {
88
+ "path": path,
89
+ "edited_by": edited_by,
90
+ "edited_at": edited_at,
91
+ "script_path": script_path,
92
+ "nats_resource_path": nats_resource_path,
93
+ "use_jetstream": use_jetstream,
94
+ "subjects": subjects,
95
+ "is_flow": is_flow,
96
+ "extra_perms": extra_perms,
97
+ "email": email,
98
+ "workspace_id": workspace_id,
99
+ "enabled": enabled,
100
+ }
101
+ )
102
+ if stream_name is not UNSET:
103
+ field_dict["stream_name"] = stream_name
104
+ if consumer_name is not UNSET:
105
+ field_dict["consumer_name"] = consumer_name
106
+ if server_id is not UNSET:
107
+ field_dict["server_id"] = server_id
108
+ if last_server_ping is not UNSET:
109
+ field_dict["last_server_ping"] = last_server_ping
110
+ if error is not UNSET:
111
+ field_dict["error"] = error
112
+
113
+ return field_dict
114
+
115
+ @classmethod
116
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
117
+ from ..models.list_nats_triggers_response_200_item_extra_perms import ListNatsTriggersResponse200ItemExtraPerms
118
+
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
+ nats_resource_path = d.pop("nats_resource_path")
129
+
130
+ use_jetstream = d.pop("use_jetstream")
131
+
132
+ subjects = cast(List[str], d.pop("subjects"))
133
+
134
+ is_flow = d.pop("is_flow")
135
+
136
+ extra_perms = ListNatsTriggersResponse200ItemExtraPerms.from_dict(d.pop("extra_perms"))
137
+
138
+ email = d.pop("email")
139
+
140
+ workspace_id = d.pop("workspace_id")
141
+
142
+ enabled = d.pop("enabled")
143
+
144
+ stream_name = d.pop("stream_name", UNSET)
145
+
146
+ consumer_name = d.pop("consumer_name", UNSET)
147
+
148
+ server_id = d.pop("server_id", UNSET)
149
+
150
+ _last_server_ping = d.pop("last_server_ping", UNSET)
151
+ last_server_ping: Union[Unset, datetime.datetime]
152
+ if isinstance(_last_server_ping, Unset):
153
+ last_server_ping = UNSET
154
+ else:
155
+ last_server_ping = isoparse(_last_server_ping)
156
+
157
+ error = d.pop("error", UNSET)
158
+
159
+ list_nats_triggers_response_200_item = cls(
160
+ path=path,
161
+ edited_by=edited_by,
162
+ edited_at=edited_at,
163
+ script_path=script_path,
164
+ nats_resource_path=nats_resource_path,
165
+ use_jetstream=use_jetstream,
166
+ subjects=subjects,
167
+ is_flow=is_flow,
168
+ extra_perms=extra_perms,
169
+ email=email,
170
+ workspace_id=workspace_id,
171
+ enabled=enabled,
172
+ stream_name=stream_name,
173
+ consumer_name=consumer_name,
174
+ server_id=server_id,
175
+ last_server_ping=last_server_ping,
176
+ error=error,
177
+ )
178
+
179
+ list_nats_triggers_response_200_item.additional_properties = d
180
+ return list_nats_triggers_response_200_item
181
+
182
+ @property
183
+ def additional_keys(self) -> List[str]:
184
+ return list(self.additional_properties.keys())
185
+
186
+ def __getitem__(self, key: str) -> Any:
187
+ return self.additional_properties[key]
188
+
189
+ def __setitem__(self, key: str, value: Any) -> None:
190
+ self.additional_properties[key] = value
191
+
192
+ def __delitem__(self, key: str) -> None:
193
+ del self.additional_properties[key]
194
+
195
+ def __contains__(self, key: str) -> bool:
196
+ return key in self.additional_properties
@@ -0,0 +1,44 @@
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="ListNatsTriggersResponse200ItemExtraPerms")
7
+
8
+
9
+ @_attrs_define
10
+ class ListNatsTriggersResponse200ItemExtraPerms:
11
+ """ """
12
+
13
+ additional_properties: Dict[str, bool] = _attrs_field(init=False, factory=dict)
14
+
15
+ def to_dict(self) -> Dict[str, Any]:
16
+ field_dict: Dict[str, Any] = {}
17
+ field_dict.update(self.additional_properties)
18
+ field_dict.update({})
19
+
20
+ return field_dict
21
+
22
+ @classmethod
23
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
24
+ d = src_dict.copy()
25
+ list_nats_triggers_response_200_item_extra_perms = cls()
26
+
27
+ list_nats_triggers_response_200_item_extra_perms.additional_properties = d
28
+ return list_nats_triggers_response_200_item_extra_perms
29
+
30
+ @property
31
+ def additional_keys(self) -> List[str]:
32
+ return list(self.additional_properties.keys())
33
+
34
+ def __getitem__(self, key: str) -> bool:
35
+ return self.additional_properties[key]
36
+
37
+ def __setitem__(self, key: str, value: bool) -> 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
@@ -13,17 +13,20 @@ class ListUserWorkspacesResponse200WorkspacesItem:
13
13
  id (str):
14
14
  name (str):
15
15
  username (str):
16
+ color (str):
16
17
  """
17
18
 
18
19
  id: str
19
20
  name: str
20
21
  username: str
22
+ color: str
21
23
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
24
 
23
25
  def to_dict(self) -> Dict[str, Any]:
24
26
  id = self.id
25
27
  name = self.name
26
28
  username = self.username
29
+ color = self.color
27
30
 
28
31
  field_dict: Dict[str, Any] = {}
29
32
  field_dict.update(self.additional_properties)
@@ -32,6 +35,7 @@ class ListUserWorkspacesResponse200WorkspacesItem:
32
35
  "id": id,
33
36
  "name": name,
34
37
  "username": username,
38
+ "color": color,
35
39
  }
36
40
  )
37
41
 
@@ -46,10 +50,13 @@ class ListUserWorkspacesResponse200WorkspacesItem:
46
50
 
47
51
  username = d.pop("username")
48
52
 
53
+ color = d.pop("color")
54
+
49
55
  list_user_workspaces_response_200_workspaces_item = cls(
50
56
  id=id,
51
57
  name=name,
52
58
  username=username,
59
+ color=color,
53
60
  )
54
61
 
55
62
  list_user_workspaces_response_200_workspaces_item.additional_properties = d
@@ -16,12 +16,14 @@ class ListWorkspacesAsSuperAdminResponse200Item:
16
16
  name (str):
17
17
  owner (str):
18
18
  domain (Union[Unset, str]):
19
+ color (Union[Unset, str]):
19
20
  """
20
21
 
21
22
  id: str
22
23
  name: str
23
24
  owner: str
24
25
  domain: Union[Unset, str] = UNSET
26
+ color: Union[Unset, str] = UNSET
25
27
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
28
 
27
29
  def to_dict(self) -> Dict[str, Any]:
@@ -29,6 +31,7 @@ class ListWorkspacesAsSuperAdminResponse200Item:
29
31
  name = self.name
30
32
  owner = self.owner
31
33
  domain = self.domain
34
+ color = self.color
32
35
 
33
36
  field_dict: Dict[str, Any] = {}
34
37
  field_dict.update(self.additional_properties)
@@ -41,6 +44,8 @@ class ListWorkspacesAsSuperAdminResponse200Item:
41
44
  )
42
45
  if domain is not UNSET:
43
46
  field_dict["domain"] = domain
47
+ if color is not UNSET:
48
+ field_dict["color"] = color
44
49
 
45
50
  return field_dict
46
51
 
@@ -55,11 +60,14 @@ class ListWorkspacesAsSuperAdminResponse200Item:
55
60
 
56
61
  domain = d.pop("domain", UNSET)
57
62
 
63
+ color = d.pop("color", UNSET)
64
+
58
65
  list_workspaces_as_super_admin_response_200_item = cls(
59
66
  id=id,
60
67
  name=name,
61
68
  owner=owner,
62
69
  domain=domain,
70
+ color=color,
63
71
  )
64
72
 
65
73
  list_workspaces_as_super_admin_response_200_item.additional_properties = d
@@ -16,12 +16,14 @@ class ListWorkspacesResponse200Item:
16
16
  name (str):
17
17
  owner (str):
18
18
  domain (Union[Unset, str]):
19
+ color (Union[Unset, str]):
19
20
  """
20
21
 
21
22
  id: str
22
23
  name: str
23
24
  owner: str
24
25
  domain: Union[Unset, str] = UNSET
26
+ color: Union[Unset, str] = UNSET
25
27
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
28
 
27
29
  def to_dict(self) -> Dict[str, Any]:
@@ -29,6 +31,7 @@ class ListWorkspacesResponse200Item:
29
31
  name = self.name
30
32
  owner = self.owner
31
33
  domain = self.domain
34
+ color = self.color
32
35
 
33
36
  field_dict: Dict[str, Any] = {}
34
37
  field_dict.update(self.additional_properties)
@@ -41,6 +44,8 @@ class ListWorkspacesResponse200Item:
41
44
  )
42
45
  if domain is not UNSET:
43
46
  field_dict["domain"] = domain
47
+ if color is not UNSET:
48
+ field_dict["color"] = color
44
49
 
45
50
  return field_dict
46
51
 
@@ -55,11 +60,14 @@ class ListWorkspacesResponse200Item:
55
60
 
56
61
  domain = d.pop("domain", UNSET)
57
62
 
63
+ color = d.pop("color", UNSET)
64
+
58
65
  list_workspaces_response_200_item = cls(
59
66
  id=id,
60
67
  name=name,
61
68
  owner=owner,
62
69
  domain=domain,
70
+ color=color,
63
71
  )
64
72
 
65
73
  list_workspaces_response_200_item.additional_properties = d
@@ -0,0 +1,196 @@
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.nats_trigger_extra_perms import NatsTriggerExtraPerms
12
+
13
+
14
+ T = TypeVar("T", bound="NatsTrigger")
15
+
16
+
17
+ @_attrs_define
18
+ class NatsTrigger:
19
+ """
20
+ Attributes:
21
+ path (str):
22
+ edited_by (str):
23
+ edited_at (datetime.datetime):
24
+ script_path (str):
25
+ nats_resource_path (str):
26
+ use_jetstream (bool):
27
+ subjects (List[str]):
28
+ is_flow (bool):
29
+ extra_perms (NatsTriggerExtraPerms):
30
+ email (str):
31
+ workspace_id (str):
32
+ enabled (bool):
33
+ stream_name (Union[Unset, str]):
34
+ consumer_name (Union[Unset, str]):
35
+ server_id (Union[Unset, str]):
36
+ last_server_ping (Union[Unset, datetime.datetime]):
37
+ error (Union[Unset, str]):
38
+ """
39
+
40
+ path: str
41
+ edited_by: str
42
+ edited_at: datetime.datetime
43
+ script_path: str
44
+ nats_resource_path: str
45
+ use_jetstream: bool
46
+ subjects: List[str]
47
+ is_flow: bool
48
+ extra_perms: "NatsTriggerExtraPerms"
49
+ email: str
50
+ workspace_id: str
51
+ enabled: bool
52
+ stream_name: Union[Unset, str] = UNSET
53
+ consumer_name: Union[Unset, str] = UNSET
54
+ server_id: Union[Unset, str] = UNSET
55
+ last_server_ping: Union[Unset, datetime.datetime] = UNSET
56
+ error: Union[Unset, str] = UNSET
57
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
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
+ nats_resource_path = self.nats_resource_path
66
+ use_jetstream = self.use_jetstream
67
+ subjects = self.subjects
68
+
69
+ is_flow = self.is_flow
70
+ extra_perms = self.extra_perms.to_dict()
71
+
72
+ email = self.email
73
+ workspace_id = self.workspace_id
74
+ enabled = self.enabled
75
+ stream_name = self.stream_name
76
+ consumer_name = self.consumer_name
77
+ server_id = self.server_id
78
+ last_server_ping: Union[Unset, str] = UNSET
79
+ if not isinstance(self.last_server_ping, Unset):
80
+ last_server_ping = self.last_server_ping.isoformat()
81
+
82
+ error = self.error
83
+
84
+ field_dict: Dict[str, Any] = {}
85
+ field_dict.update(self.additional_properties)
86
+ field_dict.update(
87
+ {
88
+ "path": path,
89
+ "edited_by": edited_by,
90
+ "edited_at": edited_at,
91
+ "script_path": script_path,
92
+ "nats_resource_path": nats_resource_path,
93
+ "use_jetstream": use_jetstream,
94
+ "subjects": subjects,
95
+ "is_flow": is_flow,
96
+ "extra_perms": extra_perms,
97
+ "email": email,
98
+ "workspace_id": workspace_id,
99
+ "enabled": enabled,
100
+ }
101
+ )
102
+ if stream_name is not UNSET:
103
+ field_dict["stream_name"] = stream_name
104
+ if consumer_name is not UNSET:
105
+ field_dict["consumer_name"] = consumer_name
106
+ if server_id is not UNSET:
107
+ field_dict["server_id"] = server_id
108
+ if last_server_ping is not UNSET:
109
+ field_dict["last_server_ping"] = last_server_ping
110
+ if error is not UNSET:
111
+ field_dict["error"] = error
112
+
113
+ return field_dict
114
+
115
+ @classmethod
116
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
117
+ from ..models.nats_trigger_extra_perms import NatsTriggerExtraPerms
118
+
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
+ nats_resource_path = d.pop("nats_resource_path")
129
+
130
+ use_jetstream = d.pop("use_jetstream")
131
+
132
+ subjects = cast(List[str], d.pop("subjects"))
133
+
134
+ is_flow = d.pop("is_flow")
135
+
136
+ extra_perms = NatsTriggerExtraPerms.from_dict(d.pop("extra_perms"))
137
+
138
+ email = d.pop("email")
139
+
140
+ workspace_id = d.pop("workspace_id")
141
+
142
+ enabled = d.pop("enabled")
143
+
144
+ stream_name = d.pop("stream_name", UNSET)
145
+
146
+ consumer_name = d.pop("consumer_name", UNSET)
147
+
148
+ server_id = d.pop("server_id", UNSET)
149
+
150
+ _last_server_ping = d.pop("last_server_ping", UNSET)
151
+ last_server_ping: Union[Unset, datetime.datetime]
152
+ if isinstance(_last_server_ping, Unset):
153
+ last_server_ping = UNSET
154
+ else:
155
+ last_server_ping = isoparse(_last_server_ping)
156
+
157
+ error = d.pop("error", UNSET)
158
+
159
+ nats_trigger = cls(
160
+ path=path,
161
+ edited_by=edited_by,
162
+ edited_at=edited_at,
163
+ script_path=script_path,
164
+ nats_resource_path=nats_resource_path,
165
+ use_jetstream=use_jetstream,
166
+ subjects=subjects,
167
+ is_flow=is_flow,
168
+ extra_perms=extra_perms,
169
+ email=email,
170
+ workspace_id=workspace_id,
171
+ enabled=enabled,
172
+ stream_name=stream_name,
173
+ consumer_name=consumer_name,
174
+ server_id=server_id,
175
+ last_server_ping=last_server_ping,
176
+ error=error,
177
+ )
178
+
179
+ nats_trigger.additional_properties = d
180
+ return nats_trigger
181
+
182
+ @property
183
+ def additional_keys(self) -> List[str]:
184
+ return list(self.additional_properties.keys())
185
+
186
+ def __getitem__(self, key: str) -> Any:
187
+ return self.additional_properties[key]
188
+
189
+ def __setitem__(self, key: str, value: Any) -> None:
190
+ self.additional_properties[key] = value
191
+
192
+ def __delitem__(self, key: str) -> None:
193
+ del self.additional_properties[key]
194
+
195
+ def __contains__(self, key: str) -> bool:
196
+ return key in self.additional_properties