windmill-api 1.474.0__py3-none-any.whl → 1.475.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 (108) hide show
  1. windmill_api/api/helpers/file_download.py +4 -4
  2. windmill_api/api/mqtt_trigger/__init__.py +0 -0
  3. windmill_api/api/mqtt_trigger/create_mqtt_trigger.py +105 -0
  4. windmill_api/api/mqtt_trigger/delete_mqtt_trigger.py +101 -0
  5. windmill_api/api/mqtt_trigger/exists_mqtt_trigger.py +160 -0
  6. windmill_api/api/mqtt_trigger/get_mqtt_trigger.py +166 -0
  7. windmill_api/api/mqtt_trigger/list_mqtt_triggers.py +237 -0
  8. windmill_api/api/mqtt_trigger/set_mqtt_trigger_enabled.py +113 -0
  9. windmill_api/api/mqtt_trigger/test_mqtt_connection.py +105 -0
  10. windmill_api/api/mqtt_trigger/update_mqtt_trigger.py +113 -0
  11. windmill_api/models/add_granular_acls_kind.py +1 -0
  12. windmill_api/models/app_with_last_version_policy.py +22 -0
  13. windmill_api/models/app_with_last_version_policy_allowed_s3_keys_item.py +66 -0
  14. windmill_api/models/app_with_last_version_w_draft_policy.py +26 -0
  15. windmill_api/models/app_with_last_version_w_draft_policy_allowed_s3_keys_item.py +66 -0
  16. windmill_api/models/capture_config_trigger_kind.py +1 -0
  17. windmill_api/models/capture_trigger_kind.py +1 -0
  18. windmill_api/models/create_app_json_body_policy.py +22 -0
  19. windmill_api/models/create_app_json_body_policy_allowed_s3_keys_item.py +66 -0
  20. windmill_api/models/create_mqtt_trigger_json_body.py +177 -0
  21. windmill_api/models/create_mqtt_trigger_json_body_client_version.py +9 -0
  22. windmill_api/models/create_mqtt_trigger_json_body_subscribe_topics_item.py +70 -0
  23. windmill_api/models/create_mqtt_trigger_json_body_subscribe_topics_item_qos.py +10 -0
  24. windmill_api/models/create_mqtt_trigger_json_body_v3_config.py +58 -0
  25. windmill_api/models/create_mqtt_trigger_json_body_v5_config.py +74 -0
  26. windmill_api/models/edit_mqtt_trigger.py +171 -0
  27. windmill_api/models/edit_mqtt_trigger_client_version.py +9 -0
  28. windmill_api/models/edit_mqtt_trigger_subscribe_topics_item.py +68 -0
  29. windmill_api/models/edit_mqtt_trigger_subscribe_topics_item_qos.py +10 -0
  30. windmill_api/models/edit_mqtt_trigger_v3_config.py +58 -0
  31. windmill_api/models/edit_mqtt_trigger_v5_config.py +74 -0
  32. windmill_api/models/edit_workspace_deploy_ui_settings_json_body_deploy_ui_settings_include_type_item.py +1 -0
  33. windmill_api/models/get_app_by_path_response_200_policy.py +26 -0
  34. windmill_api/models/get_app_by_path_response_200_policy_allowed_s3_keys_item.py +66 -0
  35. windmill_api/models/get_app_by_path_with_draft_response_200_policy.py +28 -0
  36. windmill_api/models/get_app_by_path_with_draft_response_200_policy_allowed_s3_keys_item.py +66 -0
  37. windmill_api/models/get_app_by_version_response_200_policy.py +28 -0
  38. windmill_api/models/get_app_by_version_response_200_policy_allowed_s3_keys_item.py +66 -0
  39. windmill_api/models/get_app_lite_by_path_response_200_policy.py +28 -0
  40. windmill_api/models/get_app_lite_by_path_response_200_policy_allowed_s3_keys_item.py +66 -0
  41. windmill_api/models/get_capture_configs_response_200_item_trigger_kind.py +1 -0
  42. windmill_api/models/get_capture_response_200_trigger_kind.py +1 -0
  43. windmill_api/models/get_granular_acls_kind.py +1 -0
  44. windmill_api/models/get_mqtt_trigger_response_200.py +249 -0
  45. windmill_api/models/get_mqtt_trigger_response_200_client_version.py +9 -0
  46. windmill_api/models/get_mqtt_trigger_response_200_extra_perms.py +44 -0
  47. windmill_api/models/get_mqtt_trigger_response_200_subscribe_topics_item.py +70 -0
  48. windmill_api/models/get_mqtt_trigger_response_200_subscribe_topics_item_qos.py +10 -0
  49. windmill_api/models/get_mqtt_trigger_response_200v3_config.py +58 -0
  50. windmill_api/models/get_mqtt_trigger_response_200v5_config.py +74 -0
  51. windmill_api/models/get_public_app_by_custom_path_response_200_policy.py +28 -0
  52. windmill_api/models/get_public_app_by_custom_path_response_200_policy_allowed_s3_keys_item.py +66 -0
  53. windmill_api/models/get_public_app_by_secret_response_200_policy.py +28 -0
  54. windmill_api/models/get_public_app_by_secret_response_200_policy_allowed_s3_keys_item.py +66 -0
  55. windmill_api/models/get_settings_response_200_deploy_ui_include_type_item.py +1 -0
  56. windmill_api/models/get_triggers_count_of_flow_response_200.py +8 -0
  57. windmill_api/models/get_triggers_count_of_script_response_200.py +8 -0
  58. windmill_api/models/get_used_triggers_response_200.py +7 -0
  59. windmill_api/models/list_captures_response_200_item_trigger_kind.py +1 -0
  60. windmill_api/models/list_captures_trigger_kind.py +1 -0
  61. windmill_api/models/list_mqtt_triggers_response_200_item.py +251 -0
  62. windmill_api/models/list_mqtt_triggers_response_200_item_client_version.py +9 -0
  63. windmill_api/models/list_mqtt_triggers_response_200_item_extra_perms.py +44 -0
  64. windmill_api/models/list_mqtt_triggers_response_200_item_subscribe_topics_item.py +70 -0
  65. windmill_api/models/list_mqtt_triggers_response_200_item_subscribe_topics_item_qos.py +10 -0
  66. windmill_api/models/list_mqtt_triggers_response_200_item_v3_config.py +58 -0
  67. windmill_api/models/list_mqtt_triggers_response_200_item_v5_config.py +74 -0
  68. windmill_api/models/mqtt_client_version.py +9 -0
  69. windmill_api/models/mqtt_qo_s.py +10 -0
  70. windmill_api/models/mqtt_subscribe_topic.py +68 -0
  71. windmill_api/models/mqtt_subscribe_topic_qos.py +10 -0
  72. windmill_api/models/mqtt_trigger.py +245 -0
  73. windmill_api/models/mqtt_trigger_client_version.py +9 -0
  74. windmill_api/models/mqtt_trigger_extra_perms.py +44 -0
  75. windmill_api/models/mqtt_trigger_subscribe_topics_item.py +68 -0
  76. windmill_api/models/mqtt_trigger_subscribe_topics_item_qos.py +10 -0
  77. windmill_api/models/mqtt_trigger_v3_config.py +58 -0
  78. windmill_api/models/mqtt_trigger_v5_config.py +74 -0
  79. windmill_api/models/mqtt_v3_config.py +58 -0
  80. windmill_api/models/mqtt_v5_config.py +74 -0
  81. windmill_api/models/new_mqtt_trigger.py +173 -0
  82. windmill_api/models/new_mqtt_trigger_client_version.py +9 -0
  83. windmill_api/models/new_mqtt_trigger_subscribe_topics_item.py +68 -0
  84. windmill_api/models/new_mqtt_trigger_subscribe_topics_item_qos.py +10 -0
  85. windmill_api/models/new_mqtt_trigger_v3_config.py +58 -0
  86. windmill_api/models/new_mqtt_trigger_v5_config.py +74 -0
  87. windmill_api/models/ping_capture_config_trigger_kind.py +1 -0
  88. windmill_api/models/policy.py +22 -0
  89. windmill_api/models/policy_allowed_s3_keys_item.py +66 -0
  90. windmill_api/models/remove_granular_acls_kind.py +1 -0
  91. windmill_api/models/set_capture_config_json_body_trigger_kind.py +1 -0
  92. windmill_api/models/set_mqtt_trigger_enabled_json_body.py +58 -0
  93. windmill_api/models/test_mqtt_connection_json_body.py +64 -0
  94. windmill_api/models/test_mqtt_connection_json_body_connection.py +44 -0
  95. windmill_api/models/triggers_count.py +8 -0
  96. windmill_api/models/update_app_json_body_policy.py +22 -0
  97. windmill_api/models/update_app_json_body_policy_allowed_s3_keys_item.py +66 -0
  98. windmill_api/models/update_mqtt_trigger_json_body.py +175 -0
  99. windmill_api/models/update_mqtt_trigger_json_body_client_version.py +9 -0
  100. windmill_api/models/update_mqtt_trigger_json_body_subscribe_topics_item.py +70 -0
  101. windmill_api/models/update_mqtt_trigger_json_body_subscribe_topics_item_qos.py +10 -0
  102. windmill_api/models/update_mqtt_trigger_json_body_v3_config.py +58 -0
  103. windmill_api/models/update_mqtt_trigger_json_body_v5_config.py +74 -0
  104. windmill_api/models/workspace_deploy_ui_settings_include_type_item.py +1 -0
  105. {windmill_api-1.474.0.dist-info → windmill_api-1.475.0.dist-info}/METADATA +1 -1
  106. {windmill_api-1.474.0.dist-info → windmill_api-1.475.0.dist-info}/RECORD +108 -34
  107. {windmill_api-1.474.0.dist-info → windmill_api-1.475.0.dist-info}/LICENSE +0 -0
  108. {windmill_api-1.474.0.dist-info → windmill_api-1.475.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,249 @@
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 ..models.get_mqtt_trigger_response_200_client_version import GetMqttTriggerResponse200ClientVersion
9
+ from ..types import UNSET, Unset
10
+
11
+ if TYPE_CHECKING:
12
+ from ..models.get_mqtt_trigger_response_200_extra_perms import GetMqttTriggerResponse200ExtraPerms
13
+ from ..models.get_mqtt_trigger_response_200_subscribe_topics_item import (
14
+ GetMqttTriggerResponse200SubscribeTopicsItem,
15
+ )
16
+ from ..models.get_mqtt_trigger_response_200v3_config import GetMqttTriggerResponse200V3Config
17
+ from ..models.get_mqtt_trigger_response_200v5_config import GetMqttTriggerResponse200V5Config
18
+
19
+
20
+ T = TypeVar("T", bound="GetMqttTriggerResponse200")
21
+
22
+
23
+ @_attrs_define
24
+ class GetMqttTriggerResponse200:
25
+ """
26
+ Attributes:
27
+ mqtt_resource_path (str):
28
+ subscribe_topics (List['GetMqttTriggerResponse200SubscribeTopicsItem']):
29
+ enabled (bool):
30
+ path (str):
31
+ script_path (str):
32
+ email (str):
33
+ extra_perms (GetMqttTriggerResponse200ExtraPerms):
34
+ workspace_id (str):
35
+ edited_by (str):
36
+ edited_at (datetime.datetime):
37
+ is_flow (bool):
38
+ v3_config (Union[Unset, GetMqttTriggerResponse200V3Config]):
39
+ v5_config (Union[Unset, GetMqttTriggerResponse200V5Config]):
40
+ client_id (Union[Unset, str]):
41
+ client_version (Union[Unset, GetMqttTriggerResponse200ClientVersion]):
42
+ server_id (Union[Unset, str]):
43
+ last_server_ping (Union[Unset, datetime.datetime]):
44
+ error (Union[Unset, str]):
45
+ """
46
+
47
+ mqtt_resource_path: str
48
+ subscribe_topics: List["GetMqttTriggerResponse200SubscribeTopicsItem"]
49
+ enabled: bool
50
+ path: str
51
+ script_path: str
52
+ email: str
53
+ extra_perms: "GetMqttTriggerResponse200ExtraPerms"
54
+ workspace_id: str
55
+ edited_by: str
56
+ edited_at: datetime.datetime
57
+ is_flow: bool
58
+ v3_config: Union[Unset, "GetMqttTriggerResponse200V3Config"] = UNSET
59
+ v5_config: Union[Unset, "GetMqttTriggerResponse200V5Config"] = UNSET
60
+ client_id: Union[Unset, str] = UNSET
61
+ client_version: Union[Unset, GetMqttTriggerResponse200ClientVersion] = UNSET
62
+ server_id: Union[Unset, str] = UNSET
63
+ last_server_ping: Union[Unset, datetime.datetime] = UNSET
64
+ error: Union[Unset, str] = UNSET
65
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
66
+
67
+ def to_dict(self) -> Dict[str, Any]:
68
+ mqtt_resource_path = self.mqtt_resource_path
69
+ subscribe_topics = []
70
+ for subscribe_topics_item_data in self.subscribe_topics:
71
+ subscribe_topics_item = subscribe_topics_item_data.to_dict()
72
+
73
+ subscribe_topics.append(subscribe_topics_item)
74
+
75
+ enabled = self.enabled
76
+ path = self.path
77
+ script_path = self.script_path
78
+ email = self.email
79
+ extra_perms = self.extra_perms.to_dict()
80
+
81
+ workspace_id = self.workspace_id
82
+ edited_by = self.edited_by
83
+ edited_at = self.edited_at.isoformat()
84
+
85
+ is_flow = self.is_flow
86
+ v3_config: Union[Unset, Dict[str, Any]] = UNSET
87
+ if not isinstance(self.v3_config, Unset):
88
+ v3_config = self.v3_config.to_dict()
89
+
90
+ v5_config: Union[Unset, Dict[str, Any]] = UNSET
91
+ if not isinstance(self.v5_config, Unset):
92
+ v5_config = self.v5_config.to_dict()
93
+
94
+ client_id = self.client_id
95
+ client_version: Union[Unset, str] = UNSET
96
+ if not isinstance(self.client_version, Unset):
97
+ client_version = self.client_version.value
98
+
99
+ server_id = self.server_id
100
+ last_server_ping: Union[Unset, str] = UNSET
101
+ if not isinstance(self.last_server_ping, Unset):
102
+ last_server_ping = self.last_server_ping.isoformat()
103
+
104
+ error = self.error
105
+
106
+ field_dict: Dict[str, Any] = {}
107
+ field_dict.update(self.additional_properties)
108
+ field_dict.update(
109
+ {
110
+ "mqtt_resource_path": mqtt_resource_path,
111
+ "subscribe_topics": subscribe_topics,
112
+ "enabled": enabled,
113
+ "path": path,
114
+ "script_path": script_path,
115
+ "email": email,
116
+ "extra_perms": extra_perms,
117
+ "workspace_id": workspace_id,
118
+ "edited_by": edited_by,
119
+ "edited_at": edited_at,
120
+ "is_flow": is_flow,
121
+ }
122
+ )
123
+ if v3_config is not UNSET:
124
+ field_dict["v3_config"] = v3_config
125
+ if v5_config is not UNSET:
126
+ field_dict["v5_config"] = v5_config
127
+ if client_id is not UNSET:
128
+ field_dict["client_id"] = client_id
129
+ if client_version is not UNSET:
130
+ field_dict["client_version"] = client_version
131
+ if server_id is not UNSET:
132
+ field_dict["server_id"] = server_id
133
+ if last_server_ping is not UNSET:
134
+ field_dict["last_server_ping"] = last_server_ping
135
+ if error is not UNSET:
136
+ field_dict["error"] = error
137
+
138
+ return field_dict
139
+
140
+ @classmethod
141
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
142
+ from ..models.get_mqtt_trigger_response_200_extra_perms import GetMqttTriggerResponse200ExtraPerms
143
+ from ..models.get_mqtt_trigger_response_200_subscribe_topics_item import (
144
+ GetMqttTriggerResponse200SubscribeTopicsItem,
145
+ )
146
+ from ..models.get_mqtt_trigger_response_200v3_config import GetMqttTriggerResponse200V3Config
147
+ from ..models.get_mqtt_trigger_response_200v5_config import GetMqttTriggerResponse200V5Config
148
+
149
+ d = src_dict.copy()
150
+ mqtt_resource_path = d.pop("mqtt_resource_path")
151
+
152
+ subscribe_topics = []
153
+ _subscribe_topics = d.pop("subscribe_topics")
154
+ for subscribe_topics_item_data in _subscribe_topics:
155
+ subscribe_topics_item = GetMqttTriggerResponse200SubscribeTopicsItem.from_dict(subscribe_topics_item_data)
156
+
157
+ subscribe_topics.append(subscribe_topics_item)
158
+
159
+ enabled = d.pop("enabled")
160
+
161
+ path = d.pop("path")
162
+
163
+ script_path = d.pop("script_path")
164
+
165
+ email = d.pop("email")
166
+
167
+ extra_perms = GetMqttTriggerResponse200ExtraPerms.from_dict(d.pop("extra_perms"))
168
+
169
+ workspace_id = d.pop("workspace_id")
170
+
171
+ edited_by = d.pop("edited_by")
172
+
173
+ edited_at = isoparse(d.pop("edited_at"))
174
+
175
+ is_flow = d.pop("is_flow")
176
+
177
+ _v3_config = d.pop("v3_config", UNSET)
178
+ v3_config: Union[Unset, GetMqttTriggerResponse200V3Config]
179
+ if isinstance(_v3_config, Unset):
180
+ v3_config = UNSET
181
+ else:
182
+ v3_config = GetMqttTriggerResponse200V3Config.from_dict(_v3_config)
183
+
184
+ _v5_config = d.pop("v5_config", UNSET)
185
+ v5_config: Union[Unset, GetMqttTriggerResponse200V5Config]
186
+ if isinstance(_v5_config, Unset):
187
+ v5_config = UNSET
188
+ else:
189
+ v5_config = GetMqttTriggerResponse200V5Config.from_dict(_v5_config)
190
+
191
+ client_id = d.pop("client_id", UNSET)
192
+
193
+ _client_version = d.pop("client_version", UNSET)
194
+ client_version: Union[Unset, GetMqttTriggerResponse200ClientVersion]
195
+ if isinstance(_client_version, Unset):
196
+ client_version = UNSET
197
+ else:
198
+ client_version = GetMqttTriggerResponse200ClientVersion(_client_version)
199
+
200
+ server_id = d.pop("server_id", UNSET)
201
+
202
+ _last_server_ping = d.pop("last_server_ping", UNSET)
203
+ last_server_ping: Union[Unset, datetime.datetime]
204
+ if isinstance(_last_server_ping, Unset):
205
+ last_server_ping = UNSET
206
+ else:
207
+ last_server_ping = isoparse(_last_server_ping)
208
+
209
+ error = d.pop("error", UNSET)
210
+
211
+ get_mqtt_trigger_response_200 = cls(
212
+ mqtt_resource_path=mqtt_resource_path,
213
+ subscribe_topics=subscribe_topics,
214
+ enabled=enabled,
215
+ path=path,
216
+ script_path=script_path,
217
+ email=email,
218
+ extra_perms=extra_perms,
219
+ workspace_id=workspace_id,
220
+ edited_by=edited_by,
221
+ edited_at=edited_at,
222
+ is_flow=is_flow,
223
+ v3_config=v3_config,
224
+ v5_config=v5_config,
225
+ client_id=client_id,
226
+ client_version=client_version,
227
+ server_id=server_id,
228
+ last_server_ping=last_server_ping,
229
+ error=error,
230
+ )
231
+
232
+ get_mqtt_trigger_response_200.additional_properties = d
233
+ return get_mqtt_trigger_response_200
234
+
235
+ @property
236
+ def additional_keys(self) -> List[str]:
237
+ return list(self.additional_properties.keys())
238
+
239
+ def __getitem__(self, key: str) -> Any:
240
+ return self.additional_properties[key]
241
+
242
+ def __setitem__(self, key: str, value: Any) -> None:
243
+ self.additional_properties[key] = value
244
+
245
+ def __delitem__(self, key: str) -> None:
246
+ del self.additional_properties[key]
247
+
248
+ def __contains__(self, key: str) -> bool:
249
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class GetMqttTriggerResponse200ClientVersion(str, Enum):
5
+ V3 = "v3"
6
+ V5 = "v5"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -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="GetMqttTriggerResponse200ExtraPerms")
7
+
8
+
9
+ @_attrs_define
10
+ class GetMqttTriggerResponse200ExtraPerms:
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
+ get_mqtt_trigger_response_200_extra_perms = cls()
26
+
27
+ get_mqtt_trigger_response_200_extra_perms.additional_properties = d
28
+ return get_mqtt_trigger_response_200_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,70 @@
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
+ from ..models.get_mqtt_trigger_response_200_subscribe_topics_item_qos import (
7
+ GetMqttTriggerResponse200SubscribeTopicsItemQos,
8
+ )
9
+
10
+ T = TypeVar("T", bound="GetMqttTriggerResponse200SubscribeTopicsItem")
11
+
12
+
13
+ @_attrs_define
14
+ class GetMqttTriggerResponse200SubscribeTopicsItem:
15
+ """
16
+ Attributes:
17
+ qos (GetMqttTriggerResponse200SubscribeTopicsItemQos):
18
+ topic (str):
19
+ """
20
+
21
+ qos: GetMqttTriggerResponse200SubscribeTopicsItemQos
22
+ topic: str
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ qos = self.qos.value
27
+
28
+ topic = self.topic
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update(
33
+ {
34
+ "qos": qos,
35
+ "topic": topic,
36
+ }
37
+ )
38
+
39
+ return field_dict
40
+
41
+ @classmethod
42
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
43
+ d = src_dict.copy()
44
+ qos = GetMqttTriggerResponse200SubscribeTopicsItemQos(d.pop("qos"))
45
+
46
+ topic = d.pop("topic")
47
+
48
+ get_mqtt_trigger_response_200_subscribe_topics_item = cls(
49
+ qos=qos,
50
+ topic=topic,
51
+ )
52
+
53
+ get_mqtt_trigger_response_200_subscribe_topics_item.additional_properties = d
54
+ return get_mqtt_trigger_response_200_subscribe_topics_item
55
+
56
+ @property
57
+ def additional_keys(self) -> List[str]:
58
+ return list(self.additional_properties.keys())
59
+
60
+ def __getitem__(self, key: str) -> Any:
61
+ return self.additional_properties[key]
62
+
63
+ def __setitem__(self, key: str, value: Any) -> None:
64
+ self.additional_properties[key] = value
65
+
66
+ def __delitem__(self, key: str) -> None:
67
+ del self.additional_properties[key]
68
+
69
+ def __contains__(self, key: str) -> bool:
70
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class GetMqttTriggerResponse200SubscribeTopicsItemQos(str, Enum):
5
+ QOS0 = "qos0"
6
+ QOS1 = "qos1"
7
+ QOS2 = "qos2"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -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="GetMqttTriggerResponse200V3Config")
9
+
10
+
11
+ @_attrs_define
12
+ class GetMqttTriggerResponse200V3Config:
13
+ """
14
+ Attributes:
15
+ clean_session (Union[Unset, bool]):
16
+ """
17
+
18
+ clean_session: Union[Unset, bool] = UNSET
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ clean_session = self.clean_session
23
+
24
+ field_dict: Dict[str, Any] = {}
25
+ field_dict.update(self.additional_properties)
26
+ field_dict.update({})
27
+ if clean_session is not UNSET:
28
+ field_dict["clean_session"] = clean_session
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
+ clean_session = d.pop("clean_session", UNSET)
36
+
37
+ get_mqtt_trigger_response_200v3_config = cls(
38
+ clean_session=clean_session,
39
+ )
40
+
41
+ get_mqtt_trigger_response_200v3_config.additional_properties = d
42
+ return get_mqtt_trigger_response_200v3_config
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,74 @@
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="GetMqttTriggerResponse200V5Config")
9
+
10
+
11
+ @_attrs_define
12
+ class GetMqttTriggerResponse200V5Config:
13
+ """
14
+ Attributes:
15
+ clean_start (Union[Unset, bool]):
16
+ topic_alias (Union[Unset, float]):
17
+ session_expiry_interval (Union[Unset, float]):
18
+ """
19
+
20
+ clean_start: Union[Unset, bool] = UNSET
21
+ topic_alias: Union[Unset, float] = UNSET
22
+ session_expiry_interval: Union[Unset, float] = UNSET
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ clean_start = self.clean_start
27
+ topic_alias = self.topic_alias
28
+ session_expiry_interval = self.session_expiry_interval
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update({})
33
+ if clean_start is not UNSET:
34
+ field_dict["clean_start"] = clean_start
35
+ if topic_alias is not UNSET:
36
+ field_dict["topic_alias"] = topic_alias
37
+ if session_expiry_interval is not UNSET:
38
+ field_dict["session_expiry_interval"] = session_expiry_interval
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ d = src_dict.copy()
45
+ clean_start = d.pop("clean_start", UNSET)
46
+
47
+ topic_alias = d.pop("topic_alias", UNSET)
48
+
49
+ session_expiry_interval = d.pop("session_expiry_interval", UNSET)
50
+
51
+ get_mqtt_trigger_response_200v5_config = cls(
52
+ clean_start=clean_start,
53
+ topic_alias=topic_alias,
54
+ session_expiry_interval=session_expiry_interval,
55
+ )
56
+
57
+ get_mqtt_trigger_response_200v5_config.additional_properties = d
58
+ return get_mqtt_trigger_response_200v5_config
59
+
60
+ @property
61
+ def additional_keys(self) -> List[str]:
62
+ return list(self.additional_properties.keys())
63
+
64
+ def __getitem__(self, key: str) -> Any:
65
+ return self.additional_properties[key]
66
+
67
+ def __setitem__(self, key: str, value: Any) -> None:
68
+ self.additional_properties[key] = value
69
+
70
+ def __delitem__(self, key: str) -> None:
71
+ del self.additional_properties[key]
72
+
73
+ def __contains__(self, key: str) -> bool:
74
+ return key in self.additional_properties
@@ -9,6 +9,9 @@ from ..models.get_public_app_by_custom_path_response_200_policy_execution_mode i
9
9
  from ..types import UNSET, Unset
10
10
 
11
11
  if TYPE_CHECKING:
12
+ from ..models.get_public_app_by_custom_path_response_200_policy_allowed_s3_keys_item import (
13
+ GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem,
14
+ )
12
15
  from ..models.get_public_app_by_custom_path_response_200_policy_s3_inputs_item import (
13
16
  GetPublicAppByCustomPathResponse200PolicyS3InputsItem,
14
17
  )
@@ -30,6 +33,7 @@ class GetPublicAppByCustomPathResponse200Policy:
30
33
  triggerables (Union[Unset, GetPublicAppByCustomPathResponse200PolicyTriggerables]):
31
34
  triggerables_v2 (Union[Unset, GetPublicAppByCustomPathResponse200PolicyTriggerablesV2]):
32
35
  s3_inputs (Union[Unset, List['GetPublicAppByCustomPathResponse200PolicyS3InputsItem']]):
36
+ allowed_s3_keys (Union[Unset, List['GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem']]):
33
37
  execution_mode (Union[Unset, GetPublicAppByCustomPathResponse200PolicyExecutionMode]):
34
38
  on_behalf_of (Union[Unset, str]):
35
39
  on_behalf_of_email (Union[Unset, str]):
@@ -38,6 +42,7 @@ class GetPublicAppByCustomPathResponse200Policy:
38
42
  triggerables: Union[Unset, "GetPublicAppByCustomPathResponse200PolicyTriggerables"] = UNSET
39
43
  triggerables_v2: Union[Unset, "GetPublicAppByCustomPathResponse200PolicyTriggerablesV2"] = UNSET
40
44
  s3_inputs: Union[Unset, List["GetPublicAppByCustomPathResponse200PolicyS3InputsItem"]] = UNSET
45
+ allowed_s3_keys: Union[Unset, List["GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem"]] = UNSET
41
46
  execution_mode: Union[Unset, GetPublicAppByCustomPathResponse200PolicyExecutionMode] = UNSET
42
47
  on_behalf_of: Union[Unset, str] = UNSET
43
48
  on_behalf_of_email: Union[Unset, str] = UNSET
@@ -60,6 +65,14 @@ class GetPublicAppByCustomPathResponse200Policy:
60
65
 
61
66
  s3_inputs.append(s3_inputs_item)
62
67
 
68
+ allowed_s3_keys: Union[Unset, List[Dict[str, Any]]] = UNSET
69
+ if not isinstance(self.allowed_s3_keys, Unset):
70
+ allowed_s3_keys = []
71
+ for allowed_s3_keys_item_data in self.allowed_s3_keys:
72
+ allowed_s3_keys_item = allowed_s3_keys_item_data.to_dict()
73
+
74
+ allowed_s3_keys.append(allowed_s3_keys_item)
75
+
63
76
  execution_mode: Union[Unset, str] = UNSET
64
77
  if not isinstance(self.execution_mode, Unset):
65
78
  execution_mode = self.execution_mode.value
@@ -76,6 +89,8 @@ class GetPublicAppByCustomPathResponse200Policy:
76
89
  field_dict["triggerables_v2"] = triggerables_v2
77
90
  if s3_inputs is not UNSET:
78
91
  field_dict["s3_inputs"] = s3_inputs
92
+ if allowed_s3_keys is not UNSET:
93
+ field_dict["allowed_s3_keys"] = allowed_s3_keys
79
94
  if execution_mode is not UNSET:
80
95
  field_dict["execution_mode"] = execution_mode
81
96
  if on_behalf_of is not UNSET:
@@ -87,6 +102,9 @@ class GetPublicAppByCustomPathResponse200Policy:
87
102
 
88
103
  @classmethod
89
104
  def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
105
+ from ..models.get_public_app_by_custom_path_response_200_policy_allowed_s3_keys_item import (
106
+ GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem,
107
+ )
90
108
  from ..models.get_public_app_by_custom_path_response_200_policy_s3_inputs_item import (
91
109
  GetPublicAppByCustomPathResponse200PolicyS3InputsItem,
92
110
  )
@@ -119,6 +137,15 @@ class GetPublicAppByCustomPathResponse200Policy:
119
137
 
120
138
  s3_inputs.append(s3_inputs_item)
121
139
 
140
+ allowed_s3_keys = []
141
+ _allowed_s3_keys = d.pop("allowed_s3_keys", UNSET)
142
+ for allowed_s3_keys_item_data in _allowed_s3_keys or []:
143
+ allowed_s3_keys_item = GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem.from_dict(
144
+ allowed_s3_keys_item_data
145
+ )
146
+
147
+ allowed_s3_keys.append(allowed_s3_keys_item)
148
+
122
149
  _execution_mode = d.pop("execution_mode", UNSET)
123
150
  execution_mode: Union[Unset, GetPublicAppByCustomPathResponse200PolicyExecutionMode]
124
151
  if isinstance(_execution_mode, Unset):
@@ -134,6 +161,7 @@ class GetPublicAppByCustomPathResponse200Policy:
134
161
  triggerables=triggerables,
135
162
  triggerables_v2=triggerables_v2,
136
163
  s3_inputs=s3_inputs,
164
+ allowed_s3_keys=allowed_s3_keys,
137
165
  execution_mode=execution_mode,
138
166
  on_behalf_of=on_behalf_of,
139
167
  on_behalf_of_email=on_behalf_of_email,
@@ -0,0 +1,66 @@
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="GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem")
9
+
10
+
11
+ @_attrs_define
12
+ class GetPublicAppByCustomPathResponse200PolicyAllowedS3KeysItem:
13
+ """
14
+ Attributes:
15
+ s3_path (Union[Unset, str]):
16
+ resource (Union[Unset, str]):
17
+ """
18
+
19
+ s3_path: Union[Unset, str] = UNSET
20
+ resource: Union[Unset, str] = UNSET
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ s3_path = self.s3_path
25
+ resource = self.resource
26
+
27
+ field_dict: Dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update({})
30
+ if s3_path is not UNSET:
31
+ field_dict["s3_path"] = s3_path
32
+ if resource is not UNSET:
33
+ field_dict["resource"] = resource
34
+
35
+ return field_dict
36
+
37
+ @classmethod
38
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
39
+ d = src_dict.copy()
40
+ s3_path = d.pop("s3_path", UNSET)
41
+
42
+ resource = d.pop("resource", UNSET)
43
+
44
+ get_public_app_by_custom_path_response_200_policy_allowed_s3_keys_item = cls(
45
+ s3_path=s3_path,
46
+ resource=resource,
47
+ )
48
+
49
+ get_public_app_by_custom_path_response_200_policy_allowed_s3_keys_item.additional_properties = d
50
+ return get_public_app_by_custom_path_response_200_policy_allowed_s3_keys_item
51
+
52
+ @property
53
+ def additional_keys(self) -> List[str]:
54
+ return list(self.additional_properties.keys())
55
+
56
+ def __getitem__(self, key: str) -> Any:
57
+ return self.additional_properties[key]
58
+
59
+ def __setitem__(self, key: str, value: Any) -> None:
60
+ self.additional_properties[key] = value
61
+
62
+ def __delitem__(self, key: str) -> None:
63
+ del self.additional_properties[key]
64
+
65
+ def __contains__(self, key: str) -> bool:
66
+ return key in self.additional_properties