windmill-api 1.448.1__py3-none-any.whl → 1.449.1__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 (107) hide show
  1. windmill_api/api/postgres_trigger/__init__.py +0 -0
  2. windmill_api/api/postgres_trigger/create_postgres_publication.py +121 -0
  3. windmill_api/api/postgres_trigger/create_postgres_replication_slot.py +113 -0
  4. windmill_api/api/postgres_trigger/create_postgres_trigger.py +105 -0
  5. windmill_api/api/postgres_trigger/create_template_script.py +105 -0
  6. windmill_api/api/postgres_trigger/delete_postgres_publication.py +109 -0
  7. windmill_api/api/postgres_trigger/delete_postgres_replication_slot.py +113 -0
  8. windmill_api/api/postgres_trigger/delete_postgres_trigger.py +101 -0
  9. windmill_api/api/postgres_trigger/exists_postgres_trigger.py +160 -0
  10. windmill_api/api/postgres_trigger/get_postgres_publication.py +180 -0
  11. windmill_api/api/postgres_trigger/get_postgres_trigger.py +166 -0
  12. windmill_api/api/postgres_trigger/get_template_script.py +101 -0
  13. windmill_api/api/postgres_trigger/is_valid_postgres_configuration.py +160 -0
  14. windmill_api/api/postgres_trigger/list_postgres_publication.py +161 -0
  15. windmill_api/api/postgres_trigger/list_postgres_replication_slot.py +171 -0
  16. windmill_api/api/postgres_trigger/list_postgres_triggers.py +237 -0
  17. windmill_api/api/postgres_trigger/set_postgres_trigger_enabled.py +113 -0
  18. windmill_api/api/postgres_trigger/update_postgres_publication.py +121 -0
  19. windmill_api/api/postgres_trigger/update_postgres_trigger.py +113 -0
  20. windmill_api/api/teams/__init__.py +0 -0
  21. windmill_api/api/teams/sync_teams.py +131 -0
  22. windmill_api/api/workspace/update_operator_settings.py +109 -0
  23. windmill_api/models/add_granular_acls_kind.py +1 -0
  24. windmill_api/models/channel_info.py +80 -0
  25. windmill_api/models/create_postgres_publication_json_body.py +90 -0
  26. windmill_api/models/create_postgres_publication_json_body_table_to_track_item.py +86 -0
  27. windmill_api/models/create_postgres_publication_json_body_table_to_track_item_table_to_track_item.py +79 -0
  28. windmill_api/models/create_postgres_replication_slot_json_body.py +58 -0
  29. windmill_api/models/create_postgres_trigger_json_body.py +125 -0
  30. windmill_api/models/create_postgres_trigger_json_body_publication.py +92 -0
  31. windmill_api/models/create_postgres_trigger_json_body_publication_table_to_track_item.py +86 -0
  32. windmill_api/models/create_postgres_trigger_json_body_publication_table_to_track_item_table_to_track_item.py +79 -0
  33. windmill_api/models/create_template_script_json_body.py +90 -0
  34. windmill_api/models/create_template_script_json_body_language.py +8 -0
  35. windmill_api/models/create_template_script_json_body_relations_item.py +86 -0
  36. windmill_api/models/create_template_script_json_body_relations_item_table_to_track_item.py +79 -0
  37. windmill_api/models/delete_postgres_replication_slot_json_body.py +58 -0
  38. windmill_api/models/edit_postgres_trigger.py +123 -0
  39. windmill_api/models/edit_postgres_trigger_publication.py +90 -0
  40. windmill_api/models/edit_postgres_trigger_publication_table_to_track_item.py +86 -0
  41. windmill_api/models/edit_postgres_trigger_publication_table_to_track_item_table_to_track_item.py +79 -0
  42. windmill_api/models/get_granular_acls_kind.py +1 -0
  43. windmill_api/models/get_http_trigger_response_200.py +36 -36
  44. windmill_api/models/get_postgres_publication_response_200.py +90 -0
  45. windmill_api/models/get_postgres_publication_response_200_table_to_track_item.py +86 -0
  46. windmill_api/models/get_postgres_publication_response_200_table_to_track_item_table_to_track_item.py +79 -0
  47. windmill_api/models/get_postgres_trigger_response_200.py +178 -0
  48. windmill_api/models/get_postgres_trigger_response_200_extra_perms.py +44 -0
  49. windmill_api/models/get_settings_response_200.py +19 -0
  50. windmill_api/models/get_settings_response_200_operator_settings.py +114 -0
  51. windmill_api/models/get_triggers_count_of_flow_response_200.py +8 -0
  52. windmill_api/models/get_triggers_count_of_script_response_200.py +8 -0
  53. windmill_api/models/get_used_triggers_response_200.py +7 -0
  54. windmill_api/models/get_websocket_trigger_response_200.py +37 -37
  55. windmill_api/models/http_trigger.py +36 -36
  56. windmill_api/models/language.py +8 -0
  57. windmill_api/models/list_http_triggers_response_200_item.py +36 -36
  58. windmill_api/models/list_postgres_replication_slot_response_200_item.py +66 -0
  59. windmill_api/models/list_postgres_triggers_response_200_item.py +182 -0
  60. windmill_api/models/list_postgres_triggers_response_200_item_extra_perms.py +44 -0
  61. windmill_api/models/list_user_workspaces_response_200_workspaces_item.py +32 -1
  62. windmill_api/models/list_user_workspaces_response_200_workspaces_item_operator_settings.py +114 -0
  63. windmill_api/models/list_websocket_triggers_response_200_item.py +37 -37
  64. windmill_api/models/new_postgres_trigger.py +125 -0
  65. windmill_api/models/new_postgres_trigger_publication.py +90 -0
  66. windmill_api/models/new_postgres_trigger_publication_table_to_track_item.py +86 -0
  67. windmill_api/models/new_postgres_trigger_publication_table_to_track_item_table_to_track_item.py +79 -0
  68. windmill_api/models/operator_settings.py +114 -0
  69. windmill_api/models/postgres_trigger.py +178 -0
  70. windmill_api/models/postgres_trigger_extra_perms.py +44 -0
  71. windmill_api/models/publication_data.py +86 -0
  72. windmill_api/models/publication_data_table_to_track_item.py +84 -0
  73. windmill_api/models/publication_data_table_to_track_item_table_to_track_item.py +79 -0
  74. windmill_api/models/relations.py +80 -0
  75. windmill_api/models/relations_table_to_track_item.py +79 -0
  76. windmill_api/models/remove_granular_acls_kind.py +1 -0
  77. windmill_api/models/script_lang.py +25 -0
  78. windmill_api/models/set_postgres_trigger_enabled_json_body.py +58 -0
  79. windmill_api/models/slot.py +58 -0
  80. windmill_api/models/slot_list.py +66 -0
  81. windmill_api/models/sync_teams_response_200_item.py +87 -0
  82. windmill_api/models/sync_teams_response_200_item_channels_item.py +80 -0
  83. windmill_api/models/table_to_track_item.py +79 -0
  84. windmill_api/models/team_info.py +87 -0
  85. windmill_api/models/team_info_channels_item.py +80 -0
  86. windmill_api/models/template_script.py +90 -0
  87. windmill_api/models/template_script_language.py +8 -0
  88. windmill_api/models/template_script_relations_item.py +82 -0
  89. windmill_api/models/template_script_relations_item_table_to_track_item.py +79 -0
  90. windmill_api/models/trigger_extra_property.py +95 -0
  91. windmill_api/models/trigger_extra_property_extra_perms.py +44 -0
  92. windmill_api/models/triggers_count.py +8 -0
  93. windmill_api/models/update_operator_settings_json_body.py +114 -0
  94. windmill_api/models/update_postgres_publication_json_body.py +90 -0
  95. windmill_api/models/update_postgres_publication_json_body_table_to_track_item.py +86 -0
  96. windmill_api/models/update_postgres_publication_json_body_table_to_track_item_table_to_track_item.py +79 -0
  97. windmill_api/models/update_postgres_trigger_json_body.py +123 -0
  98. windmill_api/models/update_postgres_trigger_json_body_publication.py +92 -0
  99. windmill_api/models/update_postgres_trigger_json_body_publication_table_to_track_item.py +86 -0
  100. windmill_api/models/update_postgres_trigger_json_body_publication_table_to_track_item_table_to_track_item.py +79 -0
  101. windmill_api/models/user_workspace_list_workspaces_item.py +30 -1
  102. windmill_api/models/user_workspace_list_workspaces_item_operator_settings.py +114 -0
  103. windmill_api/models/websocket_trigger.py +37 -37
  104. {windmill_api-1.448.1.dist-info → windmill_api-1.449.1.dist-info}/METADATA +1 -1
  105. {windmill_api-1.448.1.dist-info → windmill_api-1.449.1.dist-info}/RECORD +107 -20
  106. {windmill_api-1.448.1.dist-info → windmill_api-1.449.1.dist-info}/LICENSE +0 -0
  107. {windmill_api-1.448.1.dist-info → windmill_api-1.449.1.dist-info}/WHEEL +0 -0
@@ -0,0 +1,182 @@
1
+ import datetime
2
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
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_postgres_triggers_response_200_item_extra_perms import (
12
+ ListPostgresTriggersResponse200ItemExtraPerms,
13
+ )
14
+
15
+
16
+ T = TypeVar("T", bound="ListPostgresTriggersResponse200Item")
17
+
18
+
19
+ @_attrs_define
20
+ class ListPostgresTriggersResponse200Item:
21
+ """
22
+ Attributes:
23
+ path (str):
24
+ script_path (str):
25
+ is_flow (bool):
26
+ enabled (bool):
27
+ postgres_resource_path (str):
28
+ publication_name (str):
29
+ replication_slot_name (str):
30
+ email (str):
31
+ extra_perms (ListPostgresTriggersResponse200ItemExtraPerms):
32
+ workspace_id (str):
33
+ edited_by (str):
34
+ edited_at (datetime.datetime):
35
+ server_id (Union[Unset, str]):
36
+ error (Union[Unset, str]):
37
+ last_server_ping (Union[Unset, datetime.datetime]):
38
+ """
39
+
40
+ path: str
41
+ script_path: str
42
+ is_flow: bool
43
+ enabled: bool
44
+ postgres_resource_path: str
45
+ publication_name: str
46
+ replication_slot_name: str
47
+ email: str
48
+ extra_perms: "ListPostgresTriggersResponse200ItemExtraPerms"
49
+ workspace_id: str
50
+ edited_by: str
51
+ edited_at: datetime.datetime
52
+ server_id: Union[Unset, str] = UNSET
53
+ error: Union[Unset, str] = UNSET
54
+ last_server_ping: Union[Unset, datetime.datetime] = UNSET
55
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
56
+
57
+ def to_dict(self) -> Dict[str, Any]:
58
+ path = self.path
59
+ script_path = self.script_path
60
+ is_flow = self.is_flow
61
+ enabled = self.enabled
62
+ postgres_resource_path = self.postgres_resource_path
63
+ publication_name = self.publication_name
64
+ replication_slot_name = self.replication_slot_name
65
+ email = self.email
66
+ extra_perms = self.extra_perms.to_dict()
67
+
68
+ workspace_id = self.workspace_id
69
+ edited_by = self.edited_by
70
+ edited_at = self.edited_at.isoformat()
71
+
72
+ server_id = self.server_id
73
+ error = self.error
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
+ field_dict: Dict[str, Any] = {}
79
+ field_dict.update(self.additional_properties)
80
+ field_dict.update(
81
+ {
82
+ "path": path,
83
+ "script_path": script_path,
84
+ "is_flow": is_flow,
85
+ "enabled": enabled,
86
+ "postgres_resource_path": postgres_resource_path,
87
+ "publication_name": publication_name,
88
+ "replication_slot_name": replication_slot_name,
89
+ "email": email,
90
+ "extra_perms": extra_perms,
91
+ "workspace_id": workspace_id,
92
+ "edited_by": edited_by,
93
+ "edited_at": edited_at,
94
+ }
95
+ )
96
+ if server_id is not UNSET:
97
+ field_dict["server_id"] = server_id
98
+ if error is not UNSET:
99
+ field_dict["error"] = error
100
+ if last_server_ping is not UNSET:
101
+ field_dict["last_server_ping"] = last_server_ping
102
+
103
+ return field_dict
104
+
105
+ @classmethod
106
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
107
+ from ..models.list_postgres_triggers_response_200_item_extra_perms import (
108
+ ListPostgresTriggersResponse200ItemExtraPerms,
109
+ )
110
+
111
+ d = src_dict.copy()
112
+ path = d.pop("path")
113
+
114
+ script_path = d.pop("script_path")
115
+
116
+ is_flow = d.pop("is_flow")
117
+
118
+ enabled = d.pop("enabled")
119
+
120
+ postgres_resource_path = d.pop("postgres_resource_path")
121
+
122
+ publication_name = d.pop("publication_name")
123
+
124
+ replication_slot_name = d.pop("replication_slot_name")
125
+
126
+ email = d.pop("email")
127
+
128
+ extra_perms = ListPostgresTriggersResponse200ItemExtraPerms.from_dict(d.pop("extra_perms"))
129
+
130
+ workspace_id = d.pop("workspace_id")
131
+
132
+ edited_by = d.pop("edited_by")
133
+
134
+ edited_at = isoparse(d.pop("edited_at"))
135
+
136
+ server_id = d.pop("server_id", UNSET)
137
+
138
+ error = d.pop("error", UNSET)
139
+
140
+ _last_server_ping = d.pop("last_server_ping", UNSET)
141
+ last_server_ping: Union[Unset, datetime.datetime]
142
+ if isinstance(_last_server_ping, Unset):
143
+ last_server_ping = UNSET
144
+ else:
145
+ last_server_ping = isoparse(_last_server_ping)
146
+
147
+ list_postgres_triggers_response_200_item = cls(
148
+ path=path,
149
+ script_path=script_path,
150
+ is_flow=is_flow,
151
+ enabled=enabled,
152
+ postgres_resource_path=postgres_resource_path,
153
+ publication_name=publication_name,
154
+ replication_slot_name=replication_slot_name,
155
+ email=email,
156
+ extra_perms=extra_perms,
157
+ workspace_id=workspace_id,
158
+ edited_by=edited_by,
159
+ edited_at=edited_at,
160
+ server_id=server_id,
161
+ error=error,
162
+ last_server_ping=last_server_ping,
163
+ )
164
+
165
+ list_postgres_triggers_response_200_item.additional_properties = d
166
+ return list_postgres_triggers_response_200_item
167
+
168
+ @property
169
+ def additional_keys(self) -> List[str]:
170
+ return list(self.additional_properties.keys())
171
+
172
+ def __getitem__(self, key: str) -> Any:
173
+ return self.additional_properties[key]
174
+
175
+ def __setitem__(self, key: str, value: Any) -> None:
176
+ self.additional_properties[key] = value
177
+
178
+ def __delitem__(self, key: str) -> None:
179
+ del self.additional_properties[key]
180
+
181
+ def __contains__(self, key: str) -> bool:
182
+ 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="ListPostgresTriggersResponse200ItemExtraPerms")
7
+
8
+
9
+ @_attrs_define
10
+ class ListPostgresTriggersResponse200ItemExtraPerms:
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_postgres_triggers_response_200_item_extra_perms = cls()
26
+
27
+ list_postgres_triggers_response_200_item_extra_perms.additional_properties = d
28
+ return list_postgres_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
@@ -1,8 +1,16 @@
1
- from typing import Any, Dict, List, Type, TypeVar
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
2
2
 
3
3
  from attrs import define as _attrs_define
4
4
  from attrs import field as _attrs_field
5
5
 
6
+ from ..types import UNSET, Unset
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.list_user_workspaces_response_200_workspaces_item_operator_settings import (
10
+ ListUserWorkspacesResponse200WorkspacesItemOperatorSettings,
11
+ )
12
+
13
+
6
14
  T = TypeVar("T", bound="ListUserWorkspacesResponse200WorkspacesItem")
7
15
 
8
16
 
@@ -14,12 +22,14 @@ class ListUserWorkspacesResponse200WorkspacesItem:
14
22
  name (str):
15
23
  username (str):
16
24
  color (str):
25
+ operator_settings (Union[Unset, None, ListUserWorkspacesResponse200WorkspacesItemOperatorSettings]):
17
26
  """
18
27
 
19
28
  id: str
20
29
  name: str
21
30
  username: str
22
31
  color: str
32
+ operator_settings: Union[Unset, None, "ListUserWorkspacesResponse200WorkspacesItemOperatorSettings"] = UNSET
23
33
  additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
34
 
25
35
  def to_dict(self) -> Dict[str, Any]:
@@ -27,6 +37,9 @@ class ListUserWorkspacesResponse200WorkspacesItem:
27
37
  name = self.name
28
38
  username = self.username
29
39
  color = self.color
40
+ operator_settings: Union[Unset, None, Dict[str, Any]] = UNSET
41
+ if not isinstance(self.operator_settings, Unset):
42
+ operator_settings = self.operator_settings.to_dict() if self.operator_settings else None
30
43
 
31
44
  field_dict: Dict[str, Any] = {}
32
45
  field_dict.update(self.additional_properties)
@@ -38,11 +51,17 @@ class ListUserWorkspacesResponse200WorkspacesItem:
38
51
  "color": color,
39
52
  }
40
53
  )
54
+ if operator_settings is not UNSET:
55
+ field_dict["operator_settings"] = operator_settings
41
56
 
42
57
  return field_dict
43
58
 
44
59
  @classmethod
45
60
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
61
+ from ..models.list_user_workspaces_response_200_workspaces_item_operator_settings import (
62
+ ListUserWorkspacesResponse200WorkspacesItemOperatorSettings,
63
+ )
64
+
46
65
  d = src_dict.copy()
47
66
  id = d.pop("id")
48
67
 
@@ -52,11 +71,23 @@ class ListUserWorkspacesResponse200WorkspacesItem:
52
71
 
53
72
  color = d.pop("color")
54
73
 
74
+ _operator_settings = d.pop("operator_settings", UNSET)
75
+ operator_settings: Union[Unset, None, ListUserWorkspacesResponse200WorkspacesItemOperatorSettings]
76
+ if _operator_settings is None:
77
+ operator_settings = None
78
+ elif isinstance(_operator_settings, Unset):
79
+ operator_settings = UNSET
80
+ else:
81
+ operator_settings = ListUserWorkspacesResponse200WorkspacesItemOperatorSettings.from_dict(
82
+ _operator_settings
83
+ )
84
+
55
85
  list_user_workspaces_response_200_workspaces_item = cls(
56
86
  id=id,
57
87
  name=name,
58
88
  username=username,
59
89
  color=color,
90
+ operator_settings=operator_settings,
60
91
  )
61
92
 
62
93
  list_user_workspaces_response_200_workspaces_item.additional_properties = d
@@ -0,0 +1,114 @@
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="ListUserWorkspacesResponse200WorkspacesItemOperatorSettings")
7
+
8
+
9
+ @_attrs_define
10
+ class ListUserWorkspacesResponse200WorkspacesItemOperatorSettings:
11
+ """
12
+ Attributes:
13
+ runs (bool): Whether operators can view runs
14
+ schedules (bool): Whether operators can view schedules
15
+ resources (bool): Whether operators can view resources
16
+ variables (bool): Whether operators can view variables
17
+ audit_logs (bool): Whether operators can view audit logs
18
+ triggers (bool): Whether operators can view triggers
19
+ groups (bool): Whether operators can view groups page
20
+ folders (bool): Whether operators can view folders page
21
+ workers (bool): Whether operators can view workers page
22
+ """
23
+
24
+ runs: bool
25
+ schedules: bool
26
+ resources: bool
27
+ variables: bool
28
+ audit_logs: bool
29
+ triggers: bool
30
+ groups: bool
31
+ folders: bool
32
+ workers: bool
33
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
34
+
35
+ def to_dict(self) -> Dict[str, Any]:
36
+ runs = self.runs
37
+ schedules = self.schedules
38
+ resources = self.resources
39
+ variables = self.variables
40
+ audit_logs = self.audit_logs
41
+ triggers = self.triggers
42
+ groups = self.groups
43
+ folders = self.folders
44
+ workers = self.workers
45
+
46
+ field_dict: Dict[str, Any] = {}
47
+ field_dict.update(self.additional_properties)
48
+ field_dict.update(
49
+ {
50
+ "runs": runs,
51
+ "schedules": schedules,
52
+ "resources": resources,
53
+ "variables": variables,
54
+ "audit_logs": audit_logs,
55
+ "triggers": triggers,
56
+ "groups": groups,
57
+ "folders": folders,
58
+ "workers": workers,
59
+ }
60
+ )
61
+
62
+ return field_dict
63
+
64
+ @classmethod
65
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
66
+ d = src_dict.copy()
67
+ runs = d.pop("runs")
68
+
69
+ schedules = d.pop("schedules")
70
+
71
+ resources = d.pop("resources")
72
+
73
+ variables = d.pop("variables")
74
+
75
+ audit_logs = d.pop("audit_logs")
76
+
77
+ triggers = d.pop("triggers")
78
+
79
+ groups = d.pop("groups")
80
+
81
+ folders = d.pop("folders")
82
+
83
+ workers = d.pop("workers")
84
+
85
+ list_user_workspaces_response_200_workspaces_item_operator_settings = cls(
86
+ runs=runs,
87
+ schedules=schedules,
88
+ resources=resources,
89
+ variables=variables,
90
+ audit_logs=audit_logs,
91
+ triggers=triggers,
92
+ groups=groups,
93
+ folders=folders,
94
+ workers=workers,
95
+ )
96
+
97
+ list_user_workspaces_response_200_workspaces_item_operator_settings.additional_properties = d
98
+ return list_user_workspaces_response_200_workspaces_item_operator_settings
99
+
100
+ @property
101
+ def additional_keys(self) -> List[str]:
102
+ return list(self.additional_properties.keys())
103
+
104
+ def __getitem__(self, key: str) -> Any:
105
+ return self.additional_properties[key]
106
+
107
+ def __setitem__(self, key: str, value: Any) -> None:
108
+ self.additional_properties[key] = value
109
+
110
+ def __delitem__(self, key: str) -> None:
111
+ del self.additional_properties[key]
112
+
113
+ def __contains__(self, key: str) -> bool:
114
+ return key in self.additional_properties
@@ -33,16 +33,16 @@ class ListWebsocketTriggersResponse200Item:
33
33
  """
34
34
  Attributes:
35
35
  path (str):
36
- edited_by (str):
37
- edited_at (datetime.datetime):
38
36
  script_path (str):
39
37
  url (str):
40
38
  is_flow (bool):
41
- extra_perms (ListWebsocketTriggersResponse200ItemExtraPerms):
42
- email (str):
43
- workspace_id (str):
44
39
  enabled (bool):
45
40
  filters (List['ListWebsocketTriggersResponse200ItemFiltersItem']):
41
+ email (str):
42
+ extra_perms (ListWebsocketTriggersResponse200ItemExtraPerms):
43
+ workspace_id (str):
44
+ edited_by (str):
45
+ edited_at (datetime.datetime):
46
46
  server_id (Union[Unset, str]):
47
47
  last_server_ping (Union[Unset, datetime.datetime]):
48
48
  error (Union[Unset, str]):
@@ -52,16 +52,16 @@ class ListWebsocketTriggersResponse200Item:
52
52
  """
53
53
 
54
54
  path: str
55
- edited_by: str
56
- edited_at: datetime.datetime
57
55
  script_path: str
58
56
  url: str
59
57
  is_flow: bool
60
- extra_perms: "ListWebsocketTriggersResponse200ItemExtraPerms"
61
- email: str
62
- workspace_id: str
63
58
  enabled: bool
64
59
  filters: List["ListWebsocketTriggersResponse200ItemFiltersItem"]
60
+ email: str
61
+ extra_perms: "ListWebsocketTriggersResponse200ItemExtraPerms"
62
+ workspace_id: str
63
+ edited_by: str
64
+ edited_at: datetime.datetime
65
65
  server_id: Union[Unset, str] = UNSET
66
66
  last_server_ping: Union[Unset, datetime.datetime] = UNSET
67
67
  error: Union[Unset, str] = UNSET
@@ -83,16 +83,9 @@ class ListWebsocketTriggersResponse200Item:
83
83
  )
84
84
 
85
85
  path = self.path
86
- edited_by = self.edited_by
87
- edited_at = self.edited_at.isoformat()
88
-
89
86
  script_path = self.script_path
90
87
  url = self.url
91
88
  is_flow = self.is_flow
92
- extra_perms = self.extra_perms.to_dict()
93
-
94
- email = self.email
95
- workspace_id = self.workspace_id
96
89
  enabled = self.enabled
97
90
  filters = []
98
91
  for filters_item_data in self.filters:
@@ -100,6 +93,13 @@ class ListWebsocketTriggersResponse200Item:
100
93
 
101
94
  filters.append(filters_item)
102
95
 
96
+ email = self.email
97
+ extra_perms = self.extra_perms.to_dict()
98
+
99
+ workspace_id = self.workspace_id
100
+ edited_by = self.edited_by
101
+ edited_at = self.edited_at.isoformat()
102
+
103
103
  server_id = self.server_id
104
104
  last_server_ping: Union[Unset, str] = UNSET
105
105
  if not isinstance(self.last_server_ping, Unset):
@@ -129,16 +129,16 @@ class ListWebsocketTriggersResponse200Item:
129
129
  field_dict.update(
130
130
  {
131
131
  "path": path,
132
- "edited_by": edited_by,
133
- "edited_at": edited_at,
134
132
  "script_path": script_path,
135
133
  "url": url,
136
134
  "is_flow": is_flow,
137
- "extra_perms": extra_perms,
138
- "email": email,
139
- "workspace_id": workspace_id,
140
135
  "enabled": enabled,
141
136
  "filters": filters,
137
+ "email": email,
138
+ "extra_perms": extra_perms,
139
+ "workspace_id": workspace_id,
140
+ "edited_by": edited_by,
141
+ "edited_at": edited_at,
142
142
  }
143
143
  )
144
144
  if server_id is not UNSET:
@@ -175,22 +175,12 @@ class ListWebsocketTriggersResponse200Item:
175
175
  d = src_dict.copy()
176
176
  path = d.pop("path")
177
177
 
178
- edited_by = d.pop("edited_by")
179
-
180
- edited_at = isoparse(d.pop("edited_at"))
181
-
182
178
  script_path = d.pop("script_path")
183
179
 
184
180
  url = d.pop("url")
185
181
 
186
182
  is_flow = d.pop("is_flow")
187
183
 
188
- extra_perms = ListWebsocketTriggersResponse200ItemExtraPerms.from_dict(d.pop("extra_perms"))
189
-
190
- email = d.pop("email")
191
-
192
- workspace_id = d.pop("workspace_id")
193
-
194
184
  enabled = d.pop("enabled")
195
185
 
196
186
  filters = []
@@ -200,6 +190,16 @@ class ListWebsocketTriggersResponse200Item:
200
190
 
201
191
  filters.append(filters_item)
202
192
 
193
+ email = d.pop("email")
194
+
195
+ extra_perms = ListWebsocketTriggersResponse200ItemExtraPerms.from_dict(d.pop("extra_perms"))
196
+
197
+ workspace_id = d.pop("workspace_id")
198
+
199
+ edited_by = d.pop("edited_by")
200
+
201
+ edited_at = isoparse(d.pop("edited_at"))
202
+
203
203
  server_id = d.pop("server_id", UNSET)
204
204
 
205
205
  _last_server_ping = d.pop("last_server_ping", UNSET)
@@ -252,16 +252,16 @@ class ListWebsocketTriggersResponse200Item:
252
252
 
253
253
  list_websocket_triggers_response_200_item = cls(
254
254
  path=path,
255
- edited_by=edited_by,
256
- edited_at=edited_at,
257
255
  script_path=script_path,
258
256
  url=url,
259
257
  is_flow=is_flow,
260
- extra_perms=extra_perms,
261
- email=email,
262
- workspace_id=workspace_id,
263
258
  enabled=enabled,
264
259
  filters=filters,
260
+ email=email,
261
+ extra_perms=extra_perms,
262
+ workspace_id=workspace_id,
263
+ edited_by=edited_by,
264
+ edited_at=edited_at,
265
265
  server_id=server_id,
266
266
  last_server_ping=last_server_ping,
267
267
  error=error,
@@ -0,0 +1,125 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union
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
+ if TYPE_CHECKING:
9
+ from ..models.new_postgres_trigger_publication import NewPostgresTriggerPublication
10
+
11
+
12
+ T = TypeVar("T", bound="NewPostgresTrigger")
13
+
14
+
15
+ @_attrs_define
16
+ class NewPostgresTrigger:
17
+ """
18
+ Attributes:
19
+ path (str):
20
+ script_path (str):
21
+ is_flow (bool):
22
+ enabled (bool):
23
+ postgres_resource_path (str):
24
+ replication_slot_name (Union[Unset, str]):
25
+ publication_name (Union[Unset, str]):
26
+ publication (Union[Unset, NewPostgresTriggerPublication]):
27
+ """
28
+
29
+ path: str
30
+ script_path: str
31
+ is_flow: bool
32
+ enabled: bool
33
+ postgres_resource_path: str
34
+ replication_slot_name: Union[Unset, str] = UNSET
35
+ publication_name: Union[Unset, str] = UNSET
36
+ publication: Union[Unset, "NewPostgresTriggerPublication"] = UNSET
37
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
38
+
39
+ def to_dict(self) -> Dict[str, Any]:
40
+ path = self.path
41
+ script_path = self.script_path
42
+ is_flow = self.is_flow
43
+ enabled = self.enabled
44
+ postgres_resource_path = self.postgres_resource_path
45
+ replication_slot_name = self.replication_slot_name
46
+ publication_name = self.publication_name
47
+ publication: Union[Unset, Dict[str, Any]] = UNSET
48
+ if not isinstance(self.publication, Unset):
49
+ publication = self.publication.to_dict()
50
+
51
+ field_dict: Dict[str, Any] = {}
52
+ field_dict.update(self.additional_properties)
53
+ field_dict.update(
54
+ {
55
+ "path": path,
56
+ "script_path": script_path,
57
+ "is_flow": is_flow,
58
+ "enabled": enabled,
59
+ "postgres_resource_path": postgres_resource_path,
60
+ }
61
+ )
62
+ if replication_slot_name is not UNSET:
63
+ field_dict["replication_slot_name"] = replication_slot_name
64
+ if publication_name is not UNSET:
65
+ field_dict["publication_name"] = publication_name
66
+ if publication is not UNSET:
67
+ field_dict["publication"] = publication
68
+
69
+ return field_dict
70
+
71
+ @classmethod
72
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
73
+ from ..models.new_postgres_trigger_publication import NewPostgresTriggerPublication
74
+
75
+ d = src_dict.copy()
76
+ path = d.pop("path")
77
+
78
+ script_path = d.pop("script_path")
79
+
80
+ is_flow = d.pop("is_flow")
81
+
82
+ enabled = d.pop("enabled")
83
+
84
+ postgres_resource_path = d.pop("postgres_resource_path")
85
+
86
+ replication_slot_name = d.pop("replication_slot_name", UNSET)
87
+
88
+ publication_name = d.pop("publication_name", UNSET)
89
+
90
+ _publication = d.pop("publication", UNSET)
91
+ publication: Union[Unset, NewPostgresTriggerPublication]
92
+ if isinstance(_publication, Unset):
93
+ publication = UNSET
94
+ else:
95
+ publication = NewPostgresTriggerPublication.from_dict(_publication)
96
+
97
+ new_postgres_trigger = cls(
98
+ path=path,
99
+ script_path=script_path,
100
+ is_flow=is_flow,
101
+ enabled=enabled,
102
+ postgres_resource_path=postgres_resource_path,
103
+ replication_slot_name=replication_slot_name,
104
+ publication_name=publication_name,
105
+ publication=publication,
106
+ )
107
+
108
+ new_postgres_trigger.additional_properties = d
109
+ return new_postgres_trigger
110
+
111
+ @property
112
+ def additional_keys(self) -> List[str]:
113
+ return list(self.additional_properties.keys())
114
+
115
+ def __getitem__(self, key: str) -> Any:
116
+ return self.additional_properties[key]
117
+
118
+ def __setitem__(self, key: str, value: Any) -> None:
119
+ self.additional_properties[key] = value
120
+
121
+ def __delitem__(self, key: str) -> None:
122
+ del self.additional_properties[key]
123
+
124
+ def __contains__(self, key: str) -> bool:
125
+ return key in self.additional_properties