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,109 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, Dict, Optional, Union
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.update_operator_settings_json_body import UpdateOperatorSettingsJsonBody
9
+ from ...types import Response
10
+
11
+
12
+ def _get_kwargs(
13
+ workspace: str,
14
+ *,
15
+ json_body: Optional[UpdateOperatorSettingsJsonBody],
16
+ ) -> Dict[str, Any]:
17
+ pass
18
+
19
+ json_json_body = json_body.to_dict() if json_body else None
20
+
21
+ return {
22
+ "method": "post",
23
+ "url": "/w/{workspace}/workspaces/operator_settings".format(
24
+ workspace=workspace,
25
+ ),
26
+ "json": json_json_body,
27
+ }
28
+
29
+
30
+ def _parse_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Optional[Any]:
31
+ if client.raise_on_unexpected_status:
32
+ raise errors.UnexpectedStatus(response.status_code, response.content)
33
+ else:
34
+ return None
35
+
36
+
37
+ def _build_response(*, client: Union[AuthenticatedClient, Client], response: httpx.Response) -> Response[Any]:
38
+ return Response(
39
+ status_code=HTTPStatus(response.status_code),
40
+ content=response.content,
41
+ headers=response.headers,
42
+ parsed=_parse_response(client=client, response=response),
43
+ )
44
+
45
+
46
+ def sync_detailed(
47
+ workspace: str,
48
+ *,
49
+ client: Union[AuthenticatedClient, Client],
50
+ json_body: Optional[UpdateOperatorSettingsJsonBody],
51
+ ) -> Response[Any]:
52
+ """Update operator settings for a workspace
53
+
54
+ Updates the operator settings for a specific workspace. Requires workspace admin privileges.
55
+
56
+ Args:
57
+ workspace (str):
58
+ json_body (Optional[UpdateOperatorSettingsJsonBody]):
59
+
60
+ Raises:
61
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
62
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
63
+
64
+ Returns:
65
+ Response[Any]
66
+ """
67
+
68
+ kwargs = _get_kwargs(
69
+ workspace=workspace,
70
+ json_body=json_body,
71
+ )
72
+
73
+ response = client.get_httpx_client().request(
74
+ **kwargs,
75
+ )
76
+
77
+ return _build_response(client=client, response=response)
78
+
79
+
80
+ async def asyncio_detailed(
81
+ workspace: str,
82
+ *,
83
+ client: Union[AuthenticatedClient, Client],
84
+ json_body: Optional[UpdateOperatorSettingsJsonBody],
85
+ ) -> Response[Any]:
86
+ """Update operator settings for a workspace
87
+
88
+ Updates the operator settings for a specific workspace. Requires workspace admin privileges.
89
+
90
+ Args:
91
+ workspace (str):
92
+ json_body (Optional[UpdateOperatorSettingsJsonBody]):
93
+
94
+ Raises:
95
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
96
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
97
+
98
+ Returns:
99
+ Response[Any]
100
+ """
101
+
102
+ kwargs = _get_kwargs(
103
+ workspace=workspace,
104
+ json_body=json_body,
105
+ )
106
+
107
+ response = await client.get_async_httpx_client().request(**kwargs)
108
+
109
+ return _build_response(client=client, response=response)
@@ -9,6 +9,7 @@ class AddGranularAclsKind(str, Enum):
9
9
  HTTP_TRIGGER = "http_trigger"
10
10
  KAFKA_TRIGGER = "kafka_trigger"
11
11
  NATS_TRIGGER = "nats_trigger"
12
+ POSTGRES_TRIGGER = "postgres_trigger"
12
13
  RAW_APP = "raw_app"
13
14
  RESOURCE = "resource"
14
15
  SCHEDULE = "schedule"
@@ -0,0 +1,80 @@
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="ChannelInfo")
7
+
8
+
9
+ @_attrs_define
10
+ class ChannelInfo:
11
+ """
12
+ Attributes:
13
+ channel_id (str): The unique identifier of the channel Example: 19:channel123@thread.tacv2.
14
+ channel_name (str): The display name of the channel Example: General.
15
+ tenant_id (str): The Microsoft Teams tenant identifier Example: 12345678-1234-1234-1234-123456789012.
16
+ service_url (str): The service URL for the channel Example:
17
+ https://smba.trafficmanager.net/amer/12345678-1234-1234-1234-123456789012/.
18
+ """
19
+
20
+ channel_id: str
21
+ channel_name: str
22
+ tenant_id: str
23
+ service_url: str
24
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
25
+
26
+ def to_dict(self) -> Dict[str, Any]:
27
+ channel_id = self.channel_id
28
+ channel_name = self.channel_name
29
+ tenant_id = self.tenant_id
30
+ service_url = self.service_url
31
+
32
+ field_dict: Dict[str, Any] = {}
33
+ field_dict.update(self.additional_properties)
34
+ field_dict.update(
35
+ {
36
+ "channel_id": channel_id,
37
+ "channel_name": channel_name,
38
+ "tenant_id": tenant_id,
39
+ "service_url": service_url,
40
+ }
41
+ )
42
+
43
+ return field_dict
44
+
45
+ @classmethod
46
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
47
+ d = src_dict.copy()
48
+ channel_id = d.pop("channel_id")
49
+
50
+ channel_name = d.pop("channel_name")
51
+
52
+ tenant_id = d.pop("tenant_id")
53
+
54
+ service_url = d.pop("service_url")
55
+
56
+ channel_info = cls(
57
+ channel_id=channel_id,
58
+ channel_name=channel_name,
59
+ tenant_id=tenant_id,
60
+ service_url=service_url,
61
+ )
62
+
63
+ channel_info.additional_properties = d
64
+ return channel_info
65
+
66
+ @property
67
+ def additional_keys(self) -> List[str]:
68
+ return list(self.additional_properties.keys())
69
+
70
+ def __getitem__(self, key: str) -> Any:
71
+ return self.additional_properties[key]
72
+
73
+ def __setitem__(self, key: str, value: Any) -> None:
74
+ self.additional_properties[key] = value
75
+
76
+ def __delitem__(self, key: str) -> None:
77
+ del self.additional_properties[key]
78
+
79
+ def __contains__(self, key: str) -> bool:
80
+ return key in self.additional_properties
@@ -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.create_postgres_publication_json_body_table_to_track_item import (
10
+ CreatePostgresPublicationJsonBodyTableToTrackItem,
11
+ )
12
+
13
+
14
+ T = TypeVar("T", bound="CreatePostgresPublicationJsonBody")
15
+
16
+
17
+ @_attrs_define
18
+ class CreatePostgresPublicationJsonBody:
19
+ """
20
+ Attributes:
21
+ transaction_to_track (List[str]):
22
+ table_to_track (Union[Unset, List['CreatePostgresPublicationJsonBodyTableToTrackItem']]):
23
+ """
24
+
25
+ transaction_to_track: List[str]
26
+ table_to_track: Union[Unset, List["CreatePostgresPublicationJsonBodyTableToTrackItem"]] = 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.create_postgres_publication_json_body_table_to_track_item import (
55
+ CreatePostgresPublicationJsonBodyTableToTrackItem,
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 = CreatePostgresPublicationJsonBodyTableToTrackItem.from_dict(table_to_track_item_data)
65
+
66
+ table_to_track.append(table_to_track_item)
67
+
68
+ create_postgres_publication_json_body = cls(
69
+ transaction_to_track=transaction_to_track,
70
+ table_to_track=table_to_track,
71
+ )
72
+
73
+ create_postgres_publication_json_body.additional_properties = d
74
+ return create_postgres_publication_json_body
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.create_postgres_publication_json_body_table_to_track_item_table_to_track_item import (
8
+ CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem,
9
+ )
10
+
11
+
12
+ T = TypeVar("T", bound="CreatePostgresPublicationJsonBodyTableToTrackItem")
13
+
14
+
15
+ @_attrs_define
16
+ class CreatePostgresPublicationJsonBodyTableToTrackItem:
17
+ """
18
+ Attributes:
19
+ schema_name (str):
20
+ table_to_track (List['CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem']):
21
+ """
22
+
23
+ schema_name: str
24
+ table_to_track: List["CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem"]
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.create_postgres_publication_json_body_table_to_track_item_table_to_track_item import (
49
+ CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem,
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 = CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem.from_dict(
59
+ table_to_track_item_data
60
+ )
61
+
62
+ table_to_track.append(table_to_track_item)
63
+
64
+ create_postgres_publication_json_body_table_to_track_item = cls(
65
+ schema_name=schema_name,
66
+ table_to_track=table_to_track,
67
+ )
68
+
69
+ create_postgres_publication_json_body_table_to_track_item.additional_properties = d
70
+ return create_postgres_publication_json_body_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="CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem")
9
+
10
+
11
+ @_attrs_define
12
+ class CreatePostgresPublicationJsonBodyTableToTrackItemTableToTrackItem:
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
+ create_postgres_publication_json_body_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
+ create_postgres_publication_json_body_table_to_track_item_table_to_track_item.additional_properties = d
63
+ return create_postgres_publication_json_body_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,58 @@
1
+ from typing import 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
+ T = TypeVar("T", bound="CreatePostgresReplicationSlotJsonBody")
9
+
10
+
11
+ @_attrs_define
12
+ class CreatePostgresReplicationSlotJsonBody:
13
+ """
14
+ Attributes:
15
+ name (Union[Unset, str]):
16
+ """
17
+
18
+ name: Union[Unset, str] = UNSET
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ name = self.name
23
+
24
+ field_dict: Dict[str, Any] = {}
25
+ field_dict.update(self.additional_properties)
26
+ field_dict.update({})
27
+ if name is not UNSET:
28
+ field_dict["name"] = name
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
+ name = d.pop("name", UNSET)
36
+
37
+ create_postgres_replication_slot_json_body = cls(
38
+ name=name,
39
+ )
40
+
41
+ create_postgres_replication_slot_json_body.additional_properties = d
42
+ return create_postgres_replication_slot_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,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.create_postgres_trigger_json_body_publication import CreatePostgresTriggerJsonBodyPublication
10
+
11
+
12
+ T = TypeVar("T", bound="CreatePostgresTriggerJsonBody")
13
+
14
+
15
+ @_attrs_define
16
+ class CreatePostgresTriggerJsonBody:
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, CreatePostgresTriggerJsonBodyPublication]):
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, "CreatePostgresTriggerJsonBodyPublication"] = 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.create_postgres_trigger_json_body_publication import CreatePostgresTriggerJsonBodyPublication
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, CreatePostgresTriggerJsonBodyPublication]
92
+ if isinstance(_publication, Unset):
93
+ publication = UNSET
94
+ else:
95
+ publication = CreatePostgresTriggerJsonBodyPublication.from_dict(_publication)
96
+
97
+ create_postgres_trigger_json_body = 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
+ create_postgres_trigger_json_body.additional_properties = d
109
+ return create_postgres_trigger_json_body
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