dart-tools 0.6.11__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 dart-tools might be problematic. Click here for more details.

Files changed (257) hide show
  1. dart/__init__.py +20 -0
  2. dart/dart.py +1144 -0
  3. dart/exception.py +6 -0
  4. dart/generated/__init__.py +8 -0
  5. dart/generated/api/__init__.py +1 -0
  6. dart/generated/api/attachments/__init__.py +0 -0
  7. dart/generated/api/attachments/attachments_list.py +169 -0
  8. dart/generated/api/comments/__init__.py +0 -0
  9. dart/generated/api/comments/comments_list.py +278 -0
  10. dart/generated/api/dartboards/__init__.py +0 -0
  11. dart/generated/api/dartboards/dartboards_list.py +271 -0
  12. dart/generated/api/dashboards/__init__.py +0 -0
  13. dart/generated/api/dashboards/dashboards_list.py +184 -0
  14. dart/generated/api/docs/__init__.py +0 -0
  15. dart/generated/api/docs/docs_list.py +372 -0
  16. dart/generated/api/folders/__init__.py +0 -0
  17. dart/generated/api/folders/folders_list.py +234 -0
  18. dart/generated/api/form_fields/__init__.py +0 -0
  19. dart/generated/api/form_fields/form_fields_list.py +169 -0
  20. dart/generated/api/forms/__init__.py +0 -0
  21. dart/generated/api/forms/forms_list.py +169 -0
  22. dart/generated/api/layouts/__init__.py +0 -0
  23. dart/generated/api/layouts/layouts_list.py +169 -0
  24. dart/generated/api/links/__init__.py +0 -0
  25. dart/generated/api/links/links_list.py +169 -0
  26. dart/generated/api/options/__init__.py +0 -0
  27. dart/generated/api/options/options_list.py +229 -0
  28. dart/generated/api/properties/__init__.py +0 -0
  29. dart/generated/api/properties/properties_list.py +204 -0
  30. dart/generated/api/reactions/__init__.py +0 -0
  31. dart/generated/api/reactions/reactions_list.py +169 -0
  32. dart/generated/api/relationship_kinds/__init__.py +0 -0
  33. dart/generated/api/relationship_kinds/relationship_kinds_list.py +169 -0
  34. dart/generated/api/relationships/__init__.py +0 -0
  35. dart/generated/api/relationships/relationships_list.py +169 -0
  36. dart/generated/api/spaces/__init__.py +0 -0
  37. dart/generated/api/spaces/spaces_list.py +214 -0
  38. dart/generated/api/statuses/__init__.py +0 -0
  39. dart/generated/api/statuses/statuses_list.py +249 -0
  40. dart/generated/api/task_doc_relationships/__init__.py +0 -0
  41. dart/generated/api/task_doc_relationships/task_doc_relationships_list.py +169 -0
  42. dart/generated/api/task_kinds/__init__.py +0 -0
  43. dart/generated/api/task_kinds/task_kinds_list.py +204 -0
  44. dart/generated/api/tasks/__init__.py +0 -0
  45. dart/generated/api/tasks/tasks_list.py +446 -0
  46. dart/generated/api/tenants/__init__.py +0 -0
  47. dart/generated/api/tenants/tenants_list.py +169 -0
  48. dart/generated/api/transactions/__init__.py +0 -0
  49. dart/generated/api/transactions/transactions_create.py +176 -0
  50. dart/generated/api/user_dartboard_layouts/__init__.py +0 -0
  51. dart/generated/api/user_dartboard_layouts/user_dartboard_layouts_list.py +169 -0
  52. dart/generated/api/user_data/__init__.py +0 -0
  53. dart/generated/api/user_data/user_data_entity_retrieve.py +580 -0
  54. dart/generated/api/users/__init__.py +0 -0
  55. dart/generated/api/users/users_list.py +214 -0
  56. dart/generated/api/views/__init__.py +0 -0
  57. dart/generated/api/views/views_list.py +184 -0
  58. dart/generated/api/webhooks/__init__.py +0 -0
  59. dart/generated/api/webhooks/webhooks_list.py +169 -0
  60. dart/generated/client.py +268 -0
  61. dart/generated/errors.py +16 -0
  62. dart/generated/models/__init__.py +373 -0
  63. dart/generated/models/attachment.py +112 -0
  64. dart/generated/models/attachment_create.py +121 -0
  65. dart/generated/models/attachment_update.py +125 -0
  66. dart/generated/models/bar_chart_adtl.py +72 -0
  67. dart/generated/models/brainstorm.py +149 -0
  68. dart/generated/models/brainstorm_create.py +134 -0
  69. dart/generated/models/brainstorm_state.py +10 -0
  70. dart/generated/models/brainstorm_update.py +153 -0
  71. dart/generated/models/burn_up_chart_adtl.py +103 -0
  72. dart/generated/models/chart.py +208 -0
  73. dart/generated/models/chart_aggregation.py +10 -0
  74. dart/generated/models/chart_type.py +14 -0
  75. dart/generated/models/comment.py +207 -0
  76. dart/generated/models/comment_create.py +146 -0
  77. dart/generated/models/comment_reaction.py +84 -0
  78. dart/generated/models/comment_reaction_create.py +82 -0
  79. dart/generated/models/comment_reaction_update.py +87 -0
  80. dart/generated/models/comment_update.py +148 -0
  81. dart/generated/models/dartboard.py +280 -0
  82. dart/generated/models/dartboard_create.py +285 -0
  83. dart/generated/models/dartboard_kind.py +12 -0
  84. dart/generated/models/dartboard_update.py +287 -0
  85. dart/generated/models/dartboards_list_kind.py +12 -0
  86. dart/generated/models/dashboard.py +185 -0
  87. dart/generated/models/dashboard_create.py +171 -0
  88. dart/generated/models/dashboard_update.py +173 -0
  89. dart/generated/models/discord_integration.py +72 -0
  90. dart/generated/models/doc.py +243 -0
  91. dart/generated/models/doc_create.py +295 -0
  92. dart/generated/models/doc_source_type.py +13 -0
  93. dart/generated/models/doc_update.py +295 -0
  94. dart/generated/models/docs_list_o_item.py +11 -0
  95. dart/generated/models/entity_name.py +22 -0
  96. dart/generated/models/event.py +420 -0
  97. dart/generated/models/event_actor.py +19 -0
  98. dart/generated/models/event_create.py +158 -0
  99. dart/generated/models/event_kind.py +88 -0
  100. dart/generated/models/event_subscription.py +74 -0
  101. dart/generated/models/event_subscription_update.py +173 -0
  102. dart/generated/models/filter_applicability.py +22 -0
  103. dart/generated/models/filter_assignee.py +116 -0
  104. dart/generated/models/filter_connector.py +9 -0
  105. dart/generated/models/filter_group.py +112 -0
  106. dart/generated/models/filter_search.py +82 -0
  107. dart/generated/models/filter_set.py +116 -0
  108. dart/generated/models/folder.py +150 -0
  109. dart/generated/models/folder_create.py +150 -0
  110. dart/generated/models/folder_kind.py +10 -0
  111. dart/generated/models/folder_update.py +152 -0
  112. dart/generated/models/folders_list_kind.py +10 -0
  113. dart/generated/models/form.py +147 -0
  114. dart/generated/models/form_create.py +141 -0
  115. dart/generated/models/form_field.py +144 -0
  116. dart/generated/models/form_field_create.py +129 -0
  117. dart/generated/models/form_field_update.py +132 -0
  118. dart/generated/models/form_update.py +142 -0
  119. dart/generated/models/github_integration.py +163 -0
  120. dart/generated/models/github_integration_tenant_extension_status.py +11 -0
  121. dart/generated/models/google_data.py +94 -0
  122. dart/generated/models/icon_kind.py +10 -0
  123. dart/generated/models/layout.py +167 -0
  124. dart/generated/models/layout_config.py +70 -0
  125. dart/generated/models/layout_create.py +130 -0
  126. dart/generated/models/layout_kind.py +11 -0
  127. dart/generated/models/layout_kind_config_map.py +56 -0
  128. dart/generated/models/layout_update.py +130 -0
  129. dart/generated/models/line_chart_adtl.py +72 -0
  130. dart/generated/models/models_response.py +671 -0
  131. dart/generated/models/notification.py +120 -0
  132. dart/generated/models/notification_update.py +100 -0
  133. dart/generated/models/notion_integration.py +90 -0
  134. dart/generated/models/notion_integration_tenant_extension_status.py +10 -0
  135. dart/generated/models/number_chart_adtl.py +77 -0
  136. dart/generated/models/operation.py +874 -0
  137. dart/generated/models/operation_kind.py +12 -0
  138. dart/generated/models/operation_model_kind.py +36 -0
  139. dart/generated/models/option.py +118 -0
  140. dart/generated/models/option_create.py +105 -0
  141. dart/generated/models/option_update.py +107 -0
  142. dart/generated/models/paginated_attachment_list.py +122 -0
  143. dart/generated/models/paginated_comment_list.py +122 -0
  144. dart/generated/models/paginated_comment_reaction_list.py +122 -0
  145. dart/generated/models/paginated_dartboard_list.py +122 -0
  146. dart/generated/models/paginated_dashboard_list.py +122 -0
  147. dart/generated/models/paginated_doc_list.py +122 -0
  148. dart/generated/models/paginated_folder_list.py +122 -0
  149. dart/generated/models/paginated_form_field_list.py +122 -0
  150. dart/generated/models/paginated_form_list.py +122 -0
  151. dart/generated/models/paginated_layout_list.py +122 -0
  152. dart/generated/models/paginated_option_list.py +122 -0
  153. dart/generated/models/paginated_property_list.py +122 -0
  154. dart/generated/models/paginated_relationship_kind_list.py +122 -0
  155. dart/generated/models/paginated_relationship_list.py +122 -0
  156. dart/generated/models/paginated_space_list.py +122 -0
  157. dart/generated/models/paginated_status_list.py +122 -0
  158. dart/generated/models/paginated_task_doc_relationship_list.py +122 -0
  159. dart/generated/models/paginated_task_kind_list.py +122 -0
  160. dart/generated/models/paginated_task_link_list.py +122 -0
  161. dart/generated/models/paginated_task_list.py +122 -0
  162. dart/generated/models/paginated_tenant_list.py +122 -0
  163. dart/generated/models/paginated_user_dartboard_layout_list.py +122 -0
  164. dart/generated/models/paginated_user_list.py +122 -0
  165. dart/generated/models/paginated_view_list.py +122 -0
  166. dart/generated/models/paginated_webhook_list.py +122 -0
  167. dart/generated/models/pie_chart_adtl.py +69 -0
  168. dart/generated/models/pie_chart_display_metric.py +9 -0
  169. dart/generated/models/priority.py +11 -0
  170. dart/generated/models/properties_list_kind.py +32 -0
  171. dart/generated/models/property_.py +153 -0
  172. dart/generated/models/property_create.py +137 -0
  173. dart/generated/models/property_kind.py +32 -0
  174. dart/generated/models/property_update.py +146 -0
  175. dart/generated/models/relationship.py +74 -0
  176. dart/generated/models/relationship_create.py +93 -0
  177. dart/generated/models/relationship_kind.py +123 -0
  178. dart/generated/models/relationship_kind_create.py +117 -0
  179. dart/generated/models/relationship_kind_kind.py +12 -0
  180. dart/generated/models/relationship_kind_update.py +119 -0
  181. dart/generated/models/report_kind.py +9 -0
  182. dart/generated/models/request_body.py +80 -0
  183. dart/generated/models/response_body.py +72 -0
  184. dart/generated/models/saml_config.py +77 -0
  185. dart/generated/models/saml_config_tenant_extension_status.py +9 -0
  186. dart/generated/models/slack_integration.py +90 -0
  187. dart/generated/models/slack_integration_tenant_extension_status.py +10 -0
  188. dart/generated/models/sort.py +66 -0
  189. dart/generated/models/space.py +325 -0
  190. dart/generated/models/space_create.py +360 -0
  191. dart/generated/models/space_kind.py +10 -0
  192. dart/generated/models/space_update.py +361 -0
  193. dart/generated/models/sprint_mode.py +9 -0
  194. dart/generated/models/status.py +141 -0
  195. dart/generated/models/status_create.py +125 -0
  196. dart/generated/models/status_kind.py +12 -0
  197. dart/generated/models/status_update.py +135 -0
  198. dart/generated/models/statuses_list_kind.py +12 -0
  199. dart/generated/models/subscription.py +9 -0
  200. dart/generated/models/subtask_display_mode.py +10 -0
  201. dart/generated/models/summary_statistic_kind.py +14 -0
  202. dart/generated/models/table_chart_adtl.py +98 -0
  203. dart/generated/models/task.py +531 -0
  204. dart/generated/models/task_create.py +585 -0
  205. dart/generated/models/task_detail_mode.py +10 -0
  206. dart/generated/models/task_doc_relationship.py +96 -0
  207. dart/generated/models/task_doc_relationship_create.py +74 -0
  208. dart/generated/models/task_kind.py +149 -0
  209. dart/generated/models/task_kind_create.py +144 -0
  210. dart/generated/models/task_kind_kind.py +9 -0
  211. dart/generated/models/task_kind_update.py +153 -0
  212. dart/generated/models/task_kinds_list_kind.py +9 -0
  213. dart/generated/models/task_link.py +131 -0
  214. dart/generated/models/task_link_create.py +152 -0
  215. dart/generated/models/task_link_kind.py +19 -0
  216. dart/generated/models/task_link_update.py +155 -0
  217. dart/generated/models/task_notion_document.py +196 -0
  218. dart/generated/models/task_notion_document_block_children_map_type_0.py +43 -0
  219. dart/generated/models/task_notion_document_block_map_type_0.py +43 -0
  220. dart/generated/models/task_notion_document_page_map_type_0.py +43 -0
  221. dart/generated/models/task_properties.py +43 -0
  222. dart/generated/models/task_source_type.py +31 -0
  223. dart/generated/models/task_update.py +585 -0
  224. dart/generated/models/tenant.py +378 -0
  225. dart/generated/models/tenant_update.py +157 -0
  226. dart/generated/models/theme.py +10 -0
  227. dart/generated/models/transaction.py +156 -0
  228. dart/generated/models/transaction_kind.py +74 -0
  229. dart/generated/models/transaction_response.py +96 -0
  230. dart/generated/models/user.py +245 -0
  231. dart/generated/models/user_dartboard_layout.py +66 -0
  232. dart/generated/models/user_dartboard_layout_create.py +74 -0
  233. dart/generated/models/user_data_entity_retrieve_entity_kind.py +32 -0
  234. dart/generated/models/user_role.py +12 -0
  235. dart/generated/models/user_status.py +12 -0
  236. dart/generated/models/user_update.py +210 -0
  237. dart/generated/models/validation_error_response.py +64 -0
  238. dart/generated/models/validation_error_response_items.py +43 -0
  239. dart/generated/models/view.py +215 -0
  240. dart/generated/models/view_create.py +213 -0
  241. dart/generated/models/view_kind.py +11 -0
  242. dart/generated/models/view_update.py +215 -0
  243. dart/generated/models/webhook.py +96 -0
  244. dart/generated/models/webhook_create.py +77 -0
  245. dart/generated/models/webhook_update.py +78 -0
  246. dart/generated/models/zapier_integration.py +66 -0
  247. dart/generated/py.typed +1 -0
  248. dart/generated/types.py +45 -0
  249. dart/order_manager.py +62 -0
  250. dart/webhook.py +21 -0
  251. dart_tools-0.6.11.dist-info/LICENSE +21 -0
  252. dart_tools-0.6.11.dist-info/METADATA +221 -0
  253. dart_tools-0.6.11.dist-info/RECORD +257 -0
  254. dart_tools-0.6.11.dist-info/WHEEL +5 -0
  255. dart_tools-0.6.11.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  256. dart_tools-0.6.11.dist-info/entry_points.txt +2 -0
  257. dart_tools-0.6.11.dist-info/top_level.txt +1 -0
@@ -0,0 +1,74 @@
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="EventSubscription")
7
+
8
+
9
+ @_attrs_define
10
+ class EventSubscription:
11
+ """
12
+ Attributes:
13
+ in_app (bool):
14
+ email (bool):
15
+ slack (bool):
16
+ """
17
+
18
+ in_app: bool
19
+ email: bool
20
+ slack: bool
21
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
22
+
23
+ def to_dict(self) -> Dict[str, Any]:
24
+ in_app = self.in_app
25
+
26
+ email = self.email
27
+
28
+ slack = self.slack
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update(
33
+ {
34
+ "inApp": in_app,
35
+ "email": email,
36
+ "slack": slack,
37
+ }
38
+ )
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
+ in_app = d.pop("inApp")
46
+
47
+ email = d.pop("email")
48
+
49
+ slack = d.pop("slack")
50
+
51
+ event_subscription = cls(
52
+ in_app=in_app,
53
+ email=email,
54
+ slack=slack,
55
+ )
56
+
57
+ event_subscription.additional_properties = d
58
+ return event_subscription
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
@@ -0,0 +1,173 @@
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 ..models.event_kind import EventKind
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="EventSubscriptionUpdate")
10
+
11
+
12
+ @_attrs_define
13
+ class EventSubscriptionUpdate:
14
+ """
15
+ Attributes:
16
+ kind (Union[Unset, EventKind]): * `tasks/create` - TASK_CREATE
17
+ * `tasks/update_assignees` - TASK_UPDATE_ASSIGNEES
18
+ * `tasks/update_status` - TASK_UPDATE_STATUS
19
+ * `tasks/update_title` - TASK_UPDATE_TITLE
20
+ * `tasks/update_description` - TASK_UPDATE_DESCRIPTION
21
+ * `tasks/set_relationship` - TASK_SET_RELATIONSHIP
22
+ * `tasks/remove_relationship` - TASK_REMOVE_RELATIONSHIP
23
+ * `tasks/update_subscriptions` - TASK_UPDATE_SUBSCRIPTIONS
24
+ * `tasks/update_other` - TASK_UPDATE_OTHER
25
+ * `tasks/comment` - TASK_COMMENT
26
+ * `tasks/due_date_tomorrow` - TASK_DUE_DATE_TOMORROW
27
+ * `tasks/reminder_now` - TASK_REMINDER_NOW
28
+ * `tasks/delete` - TASK_DELETE
29
+ * `tasks/delete_fully` - TASK_DELETE_FULLY
30
+ * `docs/create` - DOC_CREATE
31
+ * `docs/update_title` - DOC_UPDATE_TITLE
32
+ * `docs/update_other` - DOC_UPDATE_OTHER
33
+ * `docs/delete` - DOC_DELETE
34
+ * `pages/create` - PAGE_CREATE
35
+ * `pages/update_title` - PAGE_UPDATE_TITLE
36
+ * `pages/update_permissions` - PAGE_UPDATE_PERMISSIONS
37
+ * `pages/update_other` - PAGE_UPDATE_OTHER
38
+ * `pages/rollover` - DARTBOARD_ROLLOVER
39
+ * `pages/delete` - PAGE_DELETE
40
+ * `workspace/invite` - WORKSPACE_INVITE
41
+ * `workspace/join` - WORKSPACE_JOIN
42
+ * `workspace/update_role` - WORKSPACE_UPDATE_ROLE
43
+ * `workspace/leave` - WORKSPACE_LEAVE
44
+ * `workspace/update_property` - WORKSPACE_UPDATE_PROPERTY
45
+ * `workspace/update_status` - WORKSPACE_UPDATE_STATUS
46
+ * `workspace/update_other` - WORKSPACE_UPDATE_OTHER
47
+ * `workspace/create` - WORKSPACE_CREATE
48
+ * `workspace/data_import` - WORKSPACE_DATA_IMPORT
49
+ * `workspace/data_export` - WORKSPACE_DATA_EXPORT
50
+ * `workspace/delete` - WORKSPACE_DELETE
51
+ * `workspace/upgrade` - WORKSPACE_UPGRADE
52
+ * `workspace/downgrade_initialize` - WORKSPACE_DOWNGRADE_INITIALIZE
53
+ * `workspace/downgrade_finalize` - WORKSPACE_DOWNGRADE_FINALIZE
54
+ * `workspace/become_active` - WORKSPACE_BECOME_ACTIVE
55
+ * `workspace/become_inactive` - WORKSPACE_BECOME_INACTIVE
56
+ * `load/app` - LOAD_APP
57
+ * `load/authenticate` - AUTHENTICATE
58
+ * `load/unidle` - UNIDLE
59
+ * `load/signup` - LOAD_SIGNUP
60
+ * `profile/create` - PROFILE_CREATE
61
+ * `profile/update` - PROFILE_UPDATE
62
+ * `profile/delete` - PROFILE_DELETE
63
+ * `profile/become_active` - PROFILE_BECOME_ACTIVE
64
+ * `profile/become_inactive` - PROFILE_BECOME_INACTIVE
65
+ * `onboarding/finish_step` - ONBOARDING_FINISH_STEP
66
+ * `ai/props` - AI_PROPS
67
+ * `ai/subtasks` - AI_SUBTASKS
68
+ * `ai/content` - AI_CONTENT
69
+ * `ai/translate` - AI_TRANSLATE
70
+ * `ai/emoji` - AI_EMOJI
71
+ * `ai/feedback` - AI_FEEDBACK
72
+ * `ai/icon` - AI_ICON
73
+ * `ai/report` - AI_REPORT
74
+ * `ai/plan` - AI_PLAN
75
+ * `ai/brainstorm_start` - AI_BRAINSTORM_START
76
+ * `ai/detect_duplicates` - AI_DETECT_DUPLICATES
77
+ * `ai/filters` - AI_FILTERS
78
+ * `ai/execute` - AI_EXECUTE
79
+ * `ai/image` - AI_IMAGE
80
+ * `brainstorm/start` - BRAINSTORM_START
81
+ * `brainstorm/stop` - BRAINSTORM_STOP
82
+ * `help/resource_click` - HELP_RESOURCE_CLICK
83
+ * `usage/submit_feedback` - USAGE_SUBMIT_FEEDBACK
84
+ * `usage/undo` - USAGE_UNDO
85
+ * `usage/redo` - USAGE_REDO
86
+ * `usage/open_command_center` - USAGE_OPEN_COMMAND_CENTER
87
+ * `usage/open_rightbar` - USAGE_OPEN_RIGHTBAR
88
+ * `usage/open_fullscreen` - USAGE_OPEN_FULLSCREEN
89
+ * `usage/open_task_overlay` - USAGE_OPEN_TASK_OVERLAY
90
+ * `usage/copy_task_link` - USAGE_COPY_TASK_LINK
91
+ * `usage/copy_branch` - USAGE_COPY_BRANCH
92
+ * `usage/open_search` - USAGE_OPEN_SEARCH
93
+ * `usage/nlp_raw_create` - USAGE_NLP_RAW_CREATE
94
+ * `usage/nlp_raw_delete` - USAGE_NLP_RAW_DELETE
95
+ * `usage/nlp_typeahead_open` - USAGE_NLP_TYPEAHEAD_OPEN
96
+ * `usage/nlp_typeahead_accept` - USAGE_NLP_TYPEAHEAD_ACCEPT
97
+ in_app (Union[Unset, bool]):
98
+ email (Union[Unset, bool]):
99
+ slack (Union[Unset, bool]):
100
+ """
101
+
102
+ kind: Union[Unset, EventKind] = UNSET
103
+ in_app: Union[Unset, bool] = UNSET
104
+ email: Union[Unset, bool] = UNSET
105
+ slack: Union[Unset, bool] = UNSET
106
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
107
+
108
+ def to_dict(self) -> Dict[str, Any]:
109
+ kind: Union[Unset, str] = UNSET
110
+ if not isinstance(self.kind, Unset):
111
+ kind = self.kind.value
112
+
113
+ in_app = self.in_app
114
+
115
+ email = self.email
116
+
117
+ slack = self.slack
118
+
119
+ field_dict: Dict[str, Any] = {}
120
+ field_dict.update(self.additional_properties)
121
+ field_dict.update({})
122
+ if kind is not UNSET:
123
+ field_dict["kind"] = kind
124
+ if in_app is not UNSET:
125
+ field_dict["inApp"] = in_app
126
+ if email is not UNSET:
127
+ field_dict["email"] = email
128
+ if slack is not UNSET:
129
+ field_dict["slack"] = slack
130
+
131
+ return field_dict
132
+
133
+ @classmethod
134
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
135
+ d = src_dict.copy()
136
+ _kind = d.pop("kind", UNSET)
137
+ kind: Union[Unset, EventKind]
138
+ if isinstance(_kind, Unset):
139
+ kind = UNSET
140
+ else:
141
+ kind = EventKind(_kind)
142
+
143
+ in_app = d.pop("inApp", UNSET)
144
+
145
+ email = d.pop("email", UNSET)
146
+
147
+ slack = d.pop("slack", UNSET)
148
+
149
+ event_subscription_update = cls(
150
+ kind=kind,
151
+ in_app=in_app,
152
+ email=email,
153
+ slack=slack,
154
+ )
155
+
156
+ event_subscription_update.additional_properties = d
157
+ return event_subscription_update
158
+
159
+ @property
160
+ def additional_keys(self) -> List[str]:
161
+ return list(self.additional_properties.keys())
162
+
163
+ def __getitem__(self, key: str) -> Any:
164
+ return self.additional_properties[key]
165
+
166
+ def __setitem__(self, key: str, value: Any) -> None:
167
+ self.additional_properties[key] = value
168
+
169
+ def __delitem__(self, key: str) -> None:
170
+ del self.additional_properties[key]
171
+
172
+ def __contains__(self, key: str) -> bool:
173
+ return key in self.additional_properties
@@ -0,0 +1,22 @@
1
+ from enum import Enum
2
+
3
+
4
+ class FilterApplicability(str, Enum):
5
+ ARE_NOT_SET = "are not set"
6
+ CONTAIN = "contain"
7
+ CONTAINS = "contains"
8
+ DONT_INCLUDE = "don't include"
9
+ EXIST = "exist"
10
+ EXISTS = "exists"
11
+ INCLUDE = "include"
12
+ IS = "is"
13
+ IS_AFTER = "is after"
14
+ IS_BEFORE = "is before"
15
+ IS_BETWEEN = "is between"
16
+ IS_CHECKED = "is checked"
17
+ IS_NOT = "is not"
18
+ IS_NOT_SET = "is not set"
19
+ IS_UNCHECKED = "is unchecked"
20
+
21
+ def __str__(self) -> str:
22
+ return str(self.value)
@@ -0,0 +1,116 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.filter_applicability import FilterApplicability
7
+ from ..models.filter_connector import FilterConnector
8
+
9
+ T = TypeVar("T", bound="FilterAssignee")
10
+
11
+
12
+ @_attrs_define
13
+ class FilterAssignee:
14
+ """
15
+ Attributes:
16
+ id (str):
17
+ field (str):
18
+ locked (bool):
19
+ applicability (FilterApplicability): * `is` - IS
20
+ * `is not` - IS_NOT
21
+ * `is not set` - IS_NOT_SET
22
+ * `include` - INCLUDE
23
+ * `don't include` - DO_NOT_INCLUDE
24
+ * `are not set` - ARE_NOT_SET
25
+ * `exists` - EXISTS
26
+ * `exist` - EXIST
27
+ * `contains` - CONTAINS
28
+ * `contain` - CONTAIN
29
+ * `is before` - IS_BEFORE
30
+ * `is after` - IS_AFTER
31
+ * `is between` - IS_BETWEEN
32
+ * `is checked` - IS_CHECKED
33
+ * `is unchecked` - IS_UNCHECKED
34
+ connector (FilterConnector): * `or` - OR
35
+ * `and` - AND
36
+ values (List[Any]):
37
+ """
38
+
39
+ id: str
40
+ field: str
41
+ locked: bool
42
+ applicability: FilterApplicability
43
+ connector: FilterConnector
44
+ values: List[Any]
45
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
46
+
47
+ def to_dict(self) -> Dict[str, Any]:
48
+ id = self.id
49
+
50
+ field = self.field
51
+
52
+ locked = self.locked
53
+
54
+ applicability = self.applicability.value
55
+
56
+ connector = self.connector.value
57
+
58
+ values = self.values
59
+
60
+ field_dict: Dict[str, Any] = {}
61
+ field_dict.update(self.additional_properties)
62
+ field_dict.update(
63
+ {
64
+ "id": id,
65
+ "field": field,
66
+ "locked": locked,
67
+ "applicability": applicability,
68
+ "connector": connector,
69
+ "values": values,
70
+ }
71
+ )
72
+
73
+ return field_dict
74
+
75
+ @classmethod
76
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
77
+ d = src_dict.copy()
78
+ id = d.pop("id")
79
+
80
+ field = d.pop("field")
81
+
82
+ locked = d.pop("locked")
83
+
84
+ applicability = FilterApplicability(d.pop("applicability"))
85
+
86
+ connector = FilterConnector(d.pop("connector"))
87
+
88
+ values = cast(List[Any], d.pop("values"))
89
+
90
+ filter_assignee = cls(
91
+ id=id,
92
+ field=field,
93
+ locked=locked,
94
+ applicability=applicability,
95
+ connector=connector,
96
+ values=values,
97
+ )
98
+
99
+ filter_assignee.additional_properties = d
100
+ return filter_assignee
101
+
102
+ @property
103
+ def additional_keys(self) -> List[str]:
104
+ return list(self.additional_properties.keys())
105
+
106
+ def __getitem__(self, key: str) -> Any:
107
+ return self.additional_properties[key]
108
+
109
+ def __setitem__(self, key: str, value: Any) -> None:
110
+ self.additional_properties[key] = value
111
+
112
+ def __delitem__(self, key: str) -> None:
113
+ del self.additional_properties[key]
114
+
115
+ def __contains__(self, key: str) -> bool:
116
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class FilterConnector(str, Enum):
5
+ AND = "and"
6
+ OR = "or"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,112 @@
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 ..models.filter_connector import FilterConnector
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.filter_assignee import FilterAssignee
10
+ from ..models.filter_search import FilterSearch
11
+ from ..models.filter_set import FilterSet
12
+
13
+
14
+ T = TypeVar("T", bound="FilterGroup")
15
+
16
+
17
+ @_attrs_define
18
+ class FilterGroup:
19
+ """
20
+ Attributes:
21
+ filters (Union['FilterAssignee', 'FilterSearch', 'FilterSet']):
22
+ connector (FilterConnector): * `or` - OR
23
+ * `and` - AND
24
+ """
25
+
26
+ filters: Union["FilterAssignee", "FilterSearch", "FilterSet"]
27
+ connector: FilterConnector
28
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
29
+
30
+ def to_dict(self) -> Dict[str, Any]:
31
+ from ..models.filter_assignee import FilterAssignee
32
+ from ..models.filter_set import FilterSet
33
+
34
+ filters: Dict[str, Any]
35
+ if isinstance(self.filters, FilterAssignee):
36
+ filters = self.filters.to_dict()
37
+ elif isinstance(self.filters, FilterSet):
38
+ filters = self.filters.to_dict()
39
+ else:
40
+ filters = self.filters.to_dict()
41
+
42
+ connector = self.connector.value
43
+
44
+ field_dict: Dict[str, Any] = {}
45
+ field_dict.update(self.additional_properties)
46
+ field_dict.update(
47
+ {
48
+ "filters": filters,
49
+ "connector": connector,
50
+ }
51
+ )
52
+
53
+ return field_dict
54
+
55
+ @classmethod
56
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
57
+ from ..models.filter_assignee import FilterAssignee
58
+ from ..models.filter_search import FilterSearch
59
+ from ..models.filter_set import FilterSet
60
+
61
+ d = src_dict.copy()
62
+
63
+ def _parse_filters(data: object) -> Union["FilterAssignee", "FilterSearch", "FilterSet"]:
64
+ try:
65
+ if not isinstance(data, dict):
66
+ raise TypeError()
67
+ componentsschemas_filter_type_0 = FilterAssignee.from_dict(data)
68
+
69
+ return componentsschemas_filter_type_0
70
+ except: # noqa: E722
71
+ pass
72
+ try:
73
+ if not isinstance(data, dict):
74
+ raise TypeError()
75
+ componentsschemas_filter_type_1 = FilterSet.from_dict(data)
76
+
77
+ return componentsschemas_filter_type_1
78
+ except: # noqa: E722
79
+ pass
80
+ if not isinstance(data, dict):
81
+ raise TypeError()
82
+ componentsschemas_filter_type_2 = FilterSearch.from_dict(data)
83
+
84
+ return componentsschemas_filter_type_2
85
+
86
+ filters = _parse_filters(d.pop("filters"))
87
+
88
+ connector = FilterConnector(d.pop("connector"))
89
+
90
+ filter_group = cls(
91
+ filters=filters,
92
+ connector=connector,
93
+ )
94
+
95
+ filter_group.additional_properties = d
96
+ return filter_group
97
+
98
+ @property
99
+ def additional_keys(self) -> List[str]:
100
+ return list(self.additional_properties.keys())
101
+
102
+ def __getitem__(self, key: str) -> Any:
103
+ return self.additional_properties[key]
104
+
105
+ def __setitem__(self, key: str, value: Any) -> None:
106
+ self.additional_properties[key] = value
107
+
108
+ def __delitem__(self, key: str) -> None:
109
+ del self.additional_properties[key]
110
+
111
+ def __contains__(self, key: str) -> bool:
112
+ return key in self.additional_properties
@@ -0,0 +1,82 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ T = TypeVar("T", bound="FilterSearch")
7
+
8
+
9
+ @_attrs_define
10
+ class FilterSearch:
11
+ """
12
+ Attributes:
13
+ id (str):
14
+ field (str):
15
+ locked (bool):
16
+ values (List[Any]):
17
+ """
18
+
19
+ id: str
20
+ field: str
21
+ locked: bool
22
+ values: List[Any]
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ id = self.id
27
+
28
+ field = self.field
29
+
30
+ locked = self.locked
31
+
32
+ values = self.values
33
+
34
+ field_dict: Dict[str, Any] = {}
35
+ field_dict.update(self.additional_properties)
36
+ field_dict.update(
37
+ {
38
+ "id": id,
39
+ "field": field,
40
+ "locked": locked,
41
+ "values": values,
42
+ }
43
+ )
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
+ id = d.pop("id")
51
+
52
+ field = d.pop("field")
53
+
54
+ locked = d.pop("locked")
55
+
56
+ values = cast(List[Any], d.pop("values"))
57
+
58
+ filter_search = cls(
59
+ id=id,
60
+ field=field,
61
+ locked=locked,
62
+ values=values,
63
+ )
64
+
65
+ filter_search.additional_properties = d
66
+ return filter_search
67
+
68
+ @property
69
+ def additional_keys(self) -> List[str]:
70
+ return list(self.additional_properties.keys())
71
+
72
+ def __getitem__(self, key: str) -> Any:
73
+ return self.additional_properties[key]
74
+
75
+ def __setitem__(self, key: str, value: Any) -> None:
76
+ self.additional_properties[key] = value
77
+
78
+ def __delitem__(self, key: str) -> None:
79
+ del self.additional_properties[key]
80
+
81
+ def __contains__(self, key: str) -> bool:
82
+ return key in self.additional_properties