windmill-api 1.448.0__py3-none-any.whl → 1.449.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 (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.0.dist-info → windmill_api-1.449.0.dist-info}/METADATA +1 -1
  105. {windmill_api-1.448.0.dist-info → windmill_api-1.449.0.dist-info}/RECORD +107 -20
  106. {windmill_api-1.448.0.dist-info → windmill_api-1.449.0.dist-info}/LICENSE +0 -0
  107. {windmill_api-1.448.0.dist-info → windmill_api-1.449.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,90 @@
1
+ from typing import TYPE_CHECKING, 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
+ if TYPE_CHECKING:
9
+ from ..models.new_postgres_trigger_publication_table_to_track_item import (
10
+ NewPostgresTriggerPublicationTableToTrackItem,
11
+ )
12
+
13
+
14
+ T = TypeVar("T", bound="NewPostgresTriggerPublication")
15
+
16
+
17
+ @_attrs_define
18
+ class NewPostgresTriggerPublication:
19
+ """
20
+ Attributes:
21
+ transaction_to_track (List[str]):
22
+ table_to_track (Union[Unset, List['NewPostgresTriggerPublicationTableToTrackItem']]):
23
+ """
24
+
25
+ transaction_to_track: List[str]
26
+ table_to_track: Union[Unset, List["NewPostgresTriggerPublicationTableToTrackItem"]] = UNSET
27
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
28
+
29
+ def to_dict(self) -> Dict[str, Any]:
30
+ transaction_to_track = self.transaction_to_track
31
+
32
+ table_to_track: Union[Unset, List[Dict[str, Any]]] = UNSET
33
+ if not isinstance(self.table_to_track, Unset):
34
+ table_to_track = []
35
+ for table_to_track_item_data in self.table_to_track:
36
+ table_to_track_item = table_to_track_item_data.to_dict()
37
+
38
+ table_to_track.append(table_to_track_item)
39
+
40
+ field_dict: Dict[str, Any] = {}
41
+ field_dict.update(self.additional_properties)
42
+ field_dict.update(
43
+ {
44
+ "transaction_to_track": transaction_to_track,
45
+ }
46
+ )
47
+ if table_to_track is not UNSET:
48
+ field_dict["table_to_track"] = table_to_track
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
54
+ from ..models.new_postgres_trigger_publication_table_to_track_item import (
55
+ NewPostgresTriggerPublicationTableToTrackItem,
56
+ )
57
+
58
+ d = src_dict.copy()
59
+ transaction_to_track = cast(List[str], d.pop("transaction_to_track"))
60
+
61
+ table_to_track = []
62
+ _table_to_track = d.pop("table_to_track", UNSET)
63
+ for table_to_track_item_data in _table_to_track or []:
64
+ table_to_track_item = NewPostgresTriggerPublicationTableToTrackItem.from_dict(table_to_track_item_data)
65
+
66
+ table_to_track.append(table_to_track_item)
67
+
68
+ new_postgres_trigger_publication = cls(
69
+ transaction_to_track=transaction_to_track,
70
+ table_to_track=table_to_track,
71
+ )
72
+
73
+ new_postgres_trigger_publication.additional_properties = d
74
+ return new_postgres_trigger_publication
75
+
76
+ @property
77
+ def additional_keys(self) -> List[str]:
78
+ return list(self.additional_properties.keys())
79
+
80
+ def __getitem__(self, key: str) -> Any:
81
+ return self.additional_properties[key]
82
+
83
+ def __setitem__(self, key: str, value: Any) -> None:
84
+ self.additional_properties[key] = value
85
+
86
+ def __delitem__(self, key: str) -> None:
87
+ del self.additional_properties[key]
88
+
89
+ def __contains__(self, key: str) -> bool:
90
+ return key in self.additional_properties
@@ -0,0 +1,86 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ if TYPE_CHECKING:
7
+ from ..models.new_postgres_trigger_publication_table_to_track_item_table_to_track_item import (
8
+ NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem,
9
+ )
10
+
11
+
12
+ T = TypeVar("T", bound="NewPostgresTriggerPublicationTableToTrackItem")
13
+
14
+
15
+ @_attrs_define
16
+ class NewPostgresTriggerPublicationTableToTrackItem:
17
+ """
18
+ Attributes:
19
+ schema_name (str):
20
+ table_to_track (List['NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem']):
21
+ """
22
+
23
+ schema_name: str
24
+ table_to_track: List["NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem"]
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ schema_name = self.schema_name
29
+ table_to_track = []
30
+ for table_to_track_item_data in self.table_to_track:
31
+ table_to_track_item = table_to_track_item_data.to_dict()
32
+
33
+ table_to_track.append(table_to_track_item)
34
+
35
+ field_dict: Dict[str, Any] = {}
36
+ field_dict.update(self.additional_properties)
37
+ field_dict.update(
38
+ {
39
+ "schema_name": schema_name,
40
+ "table_to_track": table_to_track,
41
+ }
42
+ )
43
+
44
+ return field_dict
45
+
46
+ @classmethod
47
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
48
+ from ..models.new_postgres_trigger_publication_table_to_track_item_table_to_track_item import (
49
+ NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem,
50
+ )
51
+
52
+ d = src_dict.copy()
53
+ schema_name = d.pop("schema_name")
54
+
55
+ table_to_track = []
56
+ _table_to_track = d.pop("table_to_track")
57
+ for table_to_track_item_data in _table_to_track:
58
+ table_to_track_item = NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem.from_dict(
59
+ table_to_track_item_data
60
+ )
61
+
62
+ table_to_track.append(table_to_track_item)
63
+
64
+ new_postgres_trigger_publication_table_to_track_item = cls(
65
+ schema_name=schema_name,
66
+ table_to_track=table_to_track,
67
+ )
68
+
69
+ new_postgres_trigger_publication_table_to_track_item.additional_properties = d
70
+ return new_postgres_trigger_publication_table_to_track_item
71
+
72
+ @property
73
+ def additional_keys(self) -> List[str]:
74
+ return list(self.additional_properties.keys())
75
+
76
+ def __getitem__(self, key: str) -> Any:
77
+ return self.additional_properties[key]
78
+
79
+ def __setitem__(self, key: str, value: Any) -> None:
80
+ self.additional_properties[key] = value
81
+
82
+ def __delitem__(self, key: str) -> None:
83
+ del self.additional_properties[key]
84
+
85
+ def __contains__(self, key: str) -> bool:
86
+ return key in self.additional_properties
@@ -0,0 +1,79 @@
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="NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem")
9
+
10
+
11
+ @_attrs_define
12
+ class NewPostgresTriggerPublicationTableToTrackItemTableToTrackItem:
13
+ """
14
+ Attributes:
15
+ table_name (str):
16
+ columns_name (Union[Unset, List[str]]):
17
+ where_clause (Union[Unset, str]):
18
+ """
19
+
20
+ table_name: str
21
+ columns_name: Union[Unset, List[str]] = UNSET
22
+ where_clause: Union[Unset, str] = UNSET
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ table_name = self.table_name
27
+ columns_name: Union[Unset, List[str]] = UNSET
28
+ if not isinstance(self.columns_name, Unset):
29
+ columns_name = self.columns_name
30
+
31
+ where_clause = self.where_clause
32
+
33
+ field_dict: Dict[str, Any] = {}
34
+ field_dict.update(self.additional_properties)
35
+ field_dict.update(
36
+ {
37
+ "table_name": table_name,
38
+ }
39
+ )
40
+ if columns_name is not UNSET:
41
+ field_dict["columns_name"] = columns_name
42
+ if where_clause is not UNSET:
43
+ field_dict["where_clause"] = where_clause
44
+
45
+ return field_dict
46
+
47
+ @classmethod
48
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
49
+ d = src_dict.copy()
50
+ table_name = d.pop("table_name")
51
+
52
+ columns_name = cast(List[str], d.pop("columns_name", UNSET))
53
+
54
+ where_clause = d.pop("where_clause", UNSET)
55
+
56
+ new_postgres_trigger_publication_table_to_track_item_table_to_track_item = cls(
57
+ table_name=table_name,
58
+ columns_name=columns_name,
59
+ where_clause=where_clause,
60
+ )
61
+
62
+ new_postgres_trigger_publication_table_to_track_item_table_to_track_item.additional_properties = d
63
+ return new_postgres_trigger_publication_table_to_track_item_table_to_track_item
64
+
65
+ @property
66
+ def additional_keys(self) -> List[str]:
67
+ return list(self.additional_properties.keys())
68
+
69
+ def __getitem__(self, key: str) -> Any:
70
+ return self.additional_properties[key]
71
+
72
+ def __setitem__(self, key: str, value: Any) -> None:
73
+ self.additional_properties[key] = value
74
+
75
+ def __delitem__(self, key: str) -> None:
76
+ del self.additional_properties[key]
77
+
78
+ def __contains__(self, key: str) -> bool:
79
+ return key in self.additional_properties
@@ -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="OperatorSettings")
7
+
8
+
9
+ @_attrs_define
10
+ class OperatorSettings:
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
+ 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
+ operator_settings.additional_properties = d
98
+ return 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
@@ -0,0 +1,178 @@
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.postgres_trigger_extra_perms import PostgresTriggerExtraPerms
12
+
13
+
14
+ T = TypeVar("T", bound="PostgresTrigger")
15
+
16
+
17
+ @_attrs_define
18
+ class PostgresTrigger:
19
+ """
20
+ Attributes:
21
+ path (str):
22
+ script_path (str):
23
+ is_flow (bool):
24
+ enabled (bool):
25
+ postgres_resource_path (str):
26
+ publication_name (str):
27
+ replication_slot_name (str):
28
+ email (str):
29
+ extra_perms (PostgresTriggerExtraPerms):
30
+ workspace_id (str):
31
+ edited_by (str):
32
+ edited_at (datetime.datetime):
33
+ server_id (Union[Unset, str]):
34
+ error (Union[Unset, str]):
35
+ last_server_ping (Union[Unset, datetime.datetime]):
36
+ """
37
+
38
+ path: str
39
+ script_path: str
40
+ is_flow: bool
41
+ enabled: bool
42
+ postgres_resource_path: str
43
+ publication_name: str
44
+ replication_slot_name: str
45
+ email: str
46
+ extra_perms: "PostgresTriggerExtraPerms"
47
+ workspace_id: str
48
+ edited_by: str
49
+ edited_at: datetime.datetime
50
+ server_id: Union[Unset, str] = UNSET
51
+ error: Union[Unset, str] = UNSET
52
+ last_server_ping: Union[Unset, datetime.datetime] = UNSET
53
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
54
+
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
+ enabled = self.enabled
60
+ postgres_resource_path = self.postgres_resource_path
61
+ publication_name = self.publication_name
62
+ replication_slot_name = self.replication_slot_name
63
+ email = self.email
64
+ extra_perms = self.extra_perms.to_dict()
65
+
66
+ workspace_id = self.workspace_id
67
+ edited_by = self.edited_by
68
+ edited_at = self.edited_at.isoformat()
69
+
70
+ server_id = self.server_id
71
+ error = self.error
72
+ last_server_ping: Union[Unset, str] = UNSET
73
+ if not isinstance(self.last_server_ping, Unset):
74
+ last_server_ping = self.last_server_ping.isoformat()
75
+
76
+ field_dict: Dict[str, Any] = {}
77
+ field_dict.update(self.additional_properties)
78
+ field_dict.update(
79
+ {
80
+ "path": path,
81
+ "script_path": script_path,
82
+ "is_flow": is_flow,
83
+ "enabled": enabled,
84
+ "postgres_resource_path": postgres_resource_path,
85
+ "publication_name": publication_name,
86
+ "replication_slot_name": replication_slot_name,
87
+ "email": email,
88
+ "extra_perms": extra_perms,
89
+ "workspace_id": workspace_id,
90
+ "edited_by": edited_by,
91
+ "edited_at": edited_at,
92
+ }
93
+ )
94
+ if server_id is not UNSET:
95
+ field_dict["server_id"] = server_id
96
+ if error is not UNSET:
97
+ field_dict["error"] = error
98
+ if last_server_ping is not UNSET:
99
+ field_dict["last_server_ping"] = last_server_ping
100
+
101
+ return field_dict
102
+
103
+ @classmethod
104
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
105
+ from ..models.postgres_trigger_extra_perms import PostgresTriggerExtraPerms
106
+
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
+ enabled = d.pop("enabled")
115
+
116
+ postgres_resource_path = d.pop("postgres_resource_path")
117
+
118
+ publication_name = d.pop("publication_name")
119
+
120
+ replication_slot_name = d.pop("replication_slot_name")
121
+
122
+ email = d.pop("email")
123
+
124
+ extra_perms = PostgresTriggerExtraPerms.from_dict(d.pop("extra_perms"))
125
+
126
+ workspace_id = d.pop("workspace_id")
127
+
128
+ edited_by = d.pop("edited_by")
129
+
130
+ edited_at = isoparse(d.pop("edited_at"))
131
+
132
+ server_id = d.pop("server_id", UNSET)
133
+
134
+ error = d.pop("error", UNSET)
135
+
136
+ _last_server_ping = d.pop("last_server_ping", UNSET)
137
+ last_server_ping: Union[Unset, datetime.datetime]
138
+ if isinstance(_last_server_ping, Unset):
139
+ last_server_ping = UNSET
140
+ else:
141
+ last_server_ping = isoparse(_last_server_ping)
142
+
143
+ postgres_trigger = cls(
144
+ path=path,
145
+ script_path=script_path,
146
+ is_flow=is_flow,
147
+ enabled=enabled,
148
+ postgres_resource_path=postgres_resource_path,
149
+ publication_name=publication_name,
150
+ replication_slot_name=replication_slot_name,
151
+ email=email,
152
+ extra_perms=extra_perms,
153
+ workspace_id=workspace_id,
154
+ edited_by=edited_by,
155
+ edited_at=edited_at,
156
+ server_id=server_id,
157
+ error=error,
158
+ last_server_ping=last_server_ping,
159
+ )
160
+
161
+ postgres_trigger.additional_properties = d
162
+ return postgres_trigger
163
+
164
+ @property
165
+ def additional_keys(self) -> List[str]:
166
+ return list(self.additional_properties.keys())
167
+
168
+ def __getitem__(self, key: str) -> Any:
169
+ return self.additional_properties[key]
170
+
171
+ def __setitem__(self, key: str, value: Any) -> None:
172
+ self.additional_properties[key] = value
173
+
174
+ def __delitem__(self, key: str) -> None:
175
+ del self.additional_properties[key]
176
+
177
+ def __contains__(self, key: str) -> bool:
178
+ 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="PostgresTriggerExtraPerms")
7
+
8
+
9
+ @_attrs_define
10
+ class PostgresTriggerExtraPerms:
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
+ postgres_trigger_extra_perms = cls()
26
+
27
+ postgres_trigger_extra_perms.additional_properties = d
28
+ return postgres_trigger_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
@@ -0,0 +1,86 @@
1
+ from typing import TYPE_CHECKING, 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
+ if TYPE_CHECKING:
9
+ from ..models.publication_data_table_to_track_item import PublicationDataTableToTrackItem
10
+
11
+
12
+ T = TypeVar("T", bound="PublicationData")
13
+
14
+
15
+ @_attrs_define
16
+ class PublicationData:
17
+ """
18
+ Attributes:
19
+ transaction_to_track (List[str]):
20
+ table_to_track (Union[Unset, List['PublicationDataTableToTrackItem']]):
21
+ """
22
+
23
+ transaction_to_track: List[str]
24
+ table_to_track: Union[Unset, List["PublicationDataTableToTrackItem"]] = UNSET
25
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
26
+
27
+ def to_dict(self) -> Dict[str, Any]:
28
+ transaction_to_track = self.transaction_to_track
29
+
30
+ table_to_track: Union[Unset, List[Dict[str, Any]]] = UNSET
31
+ if not isinstance(self.table_to_track, Unset):
32
+ table_to_track = []
33
+ for table_to_track_item_data in self.table_to_track:
34
+ table_to_track_item = table_to_track_item_data.to_dict()
35
+
36
+ table_to_track.append(table_to_track_item)
37
+
38
+ field_dict: Dict[str, Any] = {}
39
+ field_dict.update(self.additional_properties)
40
+ field_dict.update(
41
+ {
42
+ "transaction_to_track": transaction_to_track,
43
+ }
44
+ )
45
+ if table_to_track is not UNSET:
46
+ field_dict["table_to_track"] = table_to_track
47
+
48
+ return field_dict
49
+
50
+ @classmethod
51
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52
+ from ..models.publication_data_table_to_track_item import PublicationDataTableToTrackItem
53
+
54
+ d = src_dict.copy()
55
+ transaction_to_track = cast(List[str], d.pop("transaction_to_track"))
56
+
57
+ table_to_track = []
58
+ _table_to_track = d.pop("table_to_track", UNSET)
59
+ for table_to_track_item_data in _table_to_track or []:
60
+ table_to_track_item = PublicationDataTableToTrackItem.from_dict(table_to_track_item_data)
61
+
62
+ table_to_track.append(table_to_track_item)
63
+
64
+ publication_data = cls(
65
+ transaction_to_track=transaction_to_track,
66
+ table_to_track=table_to_track,
67
+ )
68
+
69
+ publication_data.additional_properties = d
70
+ return publication_data
71
+
72
+ @property
73
+ def additional_keys(self) -> List[str]:
74
+ return list(self.additional_properties.keys())
75
+
76
+ def __getitem__(self, key: str) -> Any:
77
+ return self.additional_properties[key]
78
+
79
+ def __setitem__(self, key: str, value: Any) -> None:
80
+ self.additional_properties[key] = value
81
+
82
+ def __delitem__(self, key: str) -> None:
83
+ del self.additional_properties[key]
84
+
85
+ def __contains__(self, key: str) -> bool:
86
+ return key in self.additional_properties