dart-tools 0.6.6__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 (256) hide show
  1. dart/__init__.py +18 -0
  2. dart/dart.py +1134 -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 +334 -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 +371 -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 +207 -0
  73. dart/generated/models/chart_type.py +13 -0
  74. dart/generated/models/comment.py +207 -0
  75. dart/generated/models/comment_create.py +146 -0
  76. dart/generated/models/comment_reaction.py +84 -0
  77. dart/generated/models/comment_reaction_create.py +82 -0
  78. dart/generated/models/comment_reaction_update.py +87 -0
  79. dart/generated/models/comment_update.py +148 -0
  80. dart/generated/models/dartboard.py +264 -0
  81. dart/generated/models/dartboard_create.py +267 -0
  82. dart/generated/models/dartboard_kind.py +12 -0
  83. dart/generated/models/dartboard_update.py +269 -0
  84. dart/generated/models/dartboards_list_kind.py +12 -0
  85. dart/generated/models/dashboard.py +185 -0
  86. dart/generated/models/dashboard_create.py +171 -0
  87. dart/generated/models/dashboard_update.py +173 -0
  88. dart/generated/models/discord_integration.py +72 -0
  89. dart/generated/models/doc.py +243 -0
  90. dart/generated/models/doc_create.py +295 -0
  91. dart/generated/models/doc_source_type.py +13 -0
  92. dart/generated/models/doc_update.py +295 -0
  93. dart/generated/models/entity_name.py +22 -0
  94. dart/generated/models/event.py +420 -0
  95. dart/generated/models/event_actor.py +18 -0
  96. dart/generated/models/event_create.py +158 -0
  97. dart/generated/models/event_kind.py +88 -0
  98. dart/generated/models/event_subscription.py +74 -0
  99. dart/generated/models/event_subscription_update.py +173 -0
  100. dart/generated/models/filter_applicability.py +22 -0
  101. dart/generated/models/filter_assignee.py +116 -0
  102. dart/generated/models/filter_connector.py +9 -0
  103. dart/generated/models/filter_group.py +112 -0
  104. dart/generated/models/filter_search.py +82 -0
  105. dart/generated/models/filter_set.py +116 -0
  106. dart/generated/models/folder.py +150 -0
  107. dart/generated/models/folder_create.py +150 -0
  108. dart/generated/models/folder_kind.py +10 -0
  109. dart/generated/models/folder_update.py +152 -0
  110. dart/generated/models/folders_list_kind.py +10 -0
  111. dart/generated/models/form.py +147 -0
  112. dart/generated/models/form_create.py +141 -0
  113. dart/generated/models/form_field.py +144 -0
  114. dart/generated/models/form_field_create.py +129 -0
  115. dart/generated/models/form_field_update.py +132 -0
  116. dart/generated/models/form_update.py +142 -0
  117. dart/generated/models/github_integration.py +163 -0
  118. dart/generated/models/github_integration_tenant_extension_status.py +11 -0
  119. dart/generated/models/google_data.py +94 -0
  120. dart/generated/models/icon_kind.py +10 -0
  121. dart/generated/models/layout.py +167 -0
  122. dart/generated/models/layout_config.py +70 -0
  123. dart/generated/models/layout_create.py +130 -0
  124. dart/generated/models/layout_kind.py +11 -0
  125. dart/generated/models/layout_kind_config_map.py +56 -0
  126. dart/generated/models/layout_update.py +130 -0
  127. dart/generated/models/line_chart_adtl.py +72 -0
  128. dart/generated/models/models_response.py +671 -0
  129. dart/generated/models/notification.py +120 -0
  130. dart/generated/models/notification_update.py +100 -0
  131. dart/generated/models/notion_integration.py +90 -0
  132. dart/generated/models/notion_integration_tenant_extension_status.py +10 -0
  133. dart/generated/models/number_chart_adtl.py +85 -0
  134. dart/generated/models/number_chart_aggregation.py +10 -0
  135. dart/generated/models/operation.py +874 -0
  136. dart/generated/models/operation_kind.py +12 -0
  137. dart/generated/models/operation_model_kind.py +36 -0
  138. dart/generated/models/option.py +118 -0
  139. dart/generated/models/option_create.py +105 -0
  140. dart/generated/models/option_update.py +107 -0
  141. dart/generated/models/paginated_attachment_list.py +122 -0
  142. dart/generated/models/paginated_comment_list.py +122 -0
  143. dart/generated/models/paginated_comment_reaction_list.py +122 -0
  144. dart/generated/models/paginated_dartboard_list.py +122 -0
  145. dart/generated/models/paginated_dashboard_list.py +122 -0
  146. dart/generated/models/paginated_doc_list.py +122 -0
  147. dart/generated/models/paginated_folder_list.py +122 -0
  148. dart/generated/models/paginated_form_field_list.py +122 -0
  149. dart/generated/models/paginated_form_list.py +122 -0
  150. dart/generated/models/paginated_layout_list.py +122 -0
  151. dart/generated/models/paginated_option_list.py +122 -0
  152. dart/generated/models/paginated_property_list.py +122 -0
  153. dart/generated/models/paginated_relationship_kind_list.py +122 -0
  154. dart/generated/models/paginated_relationship_list.py +122 -0
  155. dart/generated/models/paginated_space_list.py +122 -0
  156. dart/generated/models/paginated_status_list.py +122 -0
  157. dart/generated/models/paginated_task_doc_relationship_list.py +122 -0
  158. dart/generated/models/paginated_task_kind_list.py +122 -0
  159. dart/generated/models/paginated_task_link_list.py +122 -0
  160. dart/generated/models/paginated_task_list.py +122 -0
  161. dart/generated/models/paginated_tenant_list.py +122 -0
  162. dart/generated/models/paginated_user_dartboard_layout_list.py +122 -0
  163. dart/generated/models/paginated_user_list.py +122 -0
  164. dart/generated/models/paginated_view_list.py +122 -0
  165. dart/generated/models/paginated_webhook_list.py +122 -0
  166. dart/generated/models/pie_chart_adtl.py +69 -0
  167. dart/generated/models/pie_chart_display_metric.py +9 -0
  168. dart/generated/models/priority.py +11 -0
  169. dart/generated/models/properties_list_kind.py +32 -0
  170. dart/generated/models/property_.py +153 -0
  171. dart/generated/models/property_create.py +137 -0
  172. dart/generated/models/property_kind.py +32 -0
  173. dart/generated/models/property_update.py +146 -0
  174. dart/generated/models/relationship.py +74 -0
  175. dart/generated/models/relationship_create.py +93 -0
  176. dart/generated/models/relationship_kind.py +123 -0
  177. dart/generated/models/relationship_kind_create.py +117 -0
  178. dart/generated/models/relationship_kind_kind.py +12 -0
  179. dart/generated/models/relationship_kind_update.py +119 -0
  180. dart/generated/models/report_kind.py +9 -0
  181. dart/generated/models/request_body.py +80 -0
  182. dart/generated/models/response_body.py +72 -0
  183. dart/generated/models/saml_config.py +77 -0
  184. dart/generated/models/saml_config_tenant_extension_status.py +9 -0
  185. dart/generated/models/slack_integration.py +90 -0
  186. dart/generated/models/slack_integration_tenant_extension_status.py +10 -0
  187. dart/generated/models/sort.py +66 -0
  188. dart/generated/models/space.py +286 -0
  189. dart/generated/models/space_create.py +310 -0
  190. dart/generated/models/space_kind.py +10 -0
  191. dart/generated/models/space_update.py +311 -0
  192. dart/generated/models/sprint_mode.py +9 -0
  193. dart/generated/models/status.py +141 -0
  194. dart/generated/models/status_create.py +125 -0
  195. dart/generated/models/status_kind.py +12 -0
  196. dart/generated/models/status_update.py +135 -0
  197. dart/generated/models/statuses_list_kind.py +12 -0
  198. dart/generated/models/subscription.py +9 -0
  199. dart/generated/models/subtask_display_mode.py +10 -0
  200. dart/generated/models/summary_statistic_kind.py +14 -0
  201. dart/generated/models/table_chart_adtl.py +72 -0
  202. dart/generated/models/task.py +531 -0
  203. dart/generated/models/task_create.py +585 -0
  204. dart/generated/models/task_detail_mode.py +10 -0
  205. dart/generated/models/task_doc_relationship.py +96 -0
  206. dart/generated/models/task_doc_relationship_create.py +74 -0
  207. dart/generated/models/task_kind.py +149 -0
  208. dart/generated/models/task_kind_create.py +144 -0
  209. dart/generated/models/task_kind_kind.py +9 -0
  210. dart/generated/models/task_kind_update.py +153 -0
  211. dart/generated/models/task_kinds_list_kind.py +9 -0
  212. dart/generated/models/task_link.py +131 -0
  213. dart/generated/models/task_link_create.py +152 -0
  214. dart/generated/models/task_link_kind.py +19 -0
  215. dart/generated/models/task_link_update.py +155 -0
  216. dart/generated/models/task_notion_document.py +196 -0
  217. dart/generated/models/task_notion_document_block_children_map_type_0.py +43 -0
  218. dart/generated/models/task_notion_document_block_map_type_0.py +43 -0
  219. dart/generated/models/task_notion_document_page_map_type_0.py +43 -0
  220. dart/generated/models/task_properties.py +43 -0
  221. dart/generated/models/task_source_type.py +31 -0
  222. dart/generated/models/task_update.py +585 -0
  223. dart/generated/models/tenant.py +378 -0
  224. dart/generated/models/tenant_update.py +157 -0
  225. dart/generated/models/theme.py +10 -0
  226. dart/generated/models/transaction.py +155 -0
  227. dart/generated/models/transaction_kind.py +73 -0
  228. dart/generated/models/transaction_response.py +96 -0
  229. dart/generated/models/user.py +245 -0
  230. dart/generated/models/user_dartboard_layout.py +66 -0
  231. dart/generated/models/user_dartboard_layout_create.py +74 -0
  232. dart/generated/models/user_data_entity_retrieve_entity_kind.py +32 -0
  233. dart/generated/models/user_role.py +12 -0
  234. dart/generated/models/user_status.py +12 -0
  235. dart/generated/models/user_update.py +190 -0
  236. dart/generated/models/validation_error_response.py +64 -0
  237. dart/generated/models/validation_error_response_items.py +43 -0
  238. dart/generated/models/view.py +207 -0
  239. dart/generated/models/view_create.py +204 -0
  240. dart/generated/models/view_kind.py +11 -0
  241. dart/generated/models/view_update.py +206 -0
  242. dart/generated/models/webhook.py +96 -0
  243. dart/generated/models/webhook_create.py +77 -0
  244. dart/generated/models/webhook_update.py +78 -0
  245. dart/generated/models/zapier_integration.py +66 -0
  246. dart/generated/py.typed +1 -0
  247. dart/generated/types.py +45 -0
  248. dart/order_manager.py +59 -0
  249. dart/webhook.py +21 -0
  250. dart_tools-0.6.6.dist-info/LICENSE +21 -0
  251. dart_tools-0.6.6.dist-info/METADATA +183 -0
  252. dart_tools-0.6.6.dist-info/RECORD +256 -0
  253. dart_tools-0.6.6.dist-info/WHEEL +5 -0
  254. dart_tools-0.6.6.dist-info/dist/dart-tools-0.3.3.tar.gz +0 -0
  255. dart_tools-0.6.6.dist-info/entry_points.txt +2 -0
  256. dart_tools-0.6.6.dist-info/top_level.txt +1 -0
@@ -0,0 +1,173 @@
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 ..models.icon_kind import IconKind
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="DashboardUpdate")
10
+
11
+
12
+ @_attrs_define
13
+ class DashboardUpdate:
14
+ """
15
+ Attributes:
16
+ duid (str):
17
+ accessible_by_team (Union[Unset, bool]):
18
+ accessible_by_user_duids (Union[Unset, List[str]]):
19
+ order (Union[Unset, str]):
20
+ title (Union[Unset, str]):
21
+ description (Union[Unset, str]):
22
+ icon_kind (Union[Unset, IconKind]): * `None` - NONE
23
+ * `Icon` - ICON
24
+ * `Emoji` - EMOJI
25
+ icon_name_or_emoji (Union[Unset, str]):
26
+ color_hex (Union[Unset, str]):
27
+ layout_duid (Union[Unset, str]):
28
+ favorited_by_user_duids (Union[Unset, List[str]]):
29
+ charts (Union[Unset, Any]):
30
+ """
31
+
32
+ duid: str
33
+ accessible_by_team: Union[Unset, bool] = UNSET
34
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
35
+ order: Union[Unset, str] = UNSET
36
+ title: Union[Unset, str] = UNSET
37
+ description: Union[Unset, str] = UNSET
38
+ icon_kind: Union[Unset, IconKind] = UNSET
39
+ icon_name_or_emoji: Union[Unset, str] = UNSET
40
+ color_hex: Union[Unset, str] = UNSET
41
+ layout_duid: Union[Unset, str] = UNSET
42
+ favorited_by_user_duids: Union[Unset, List[str]] = UNSET
43
+ charts: Union[Unset, Any] = UNSET
44
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
45
+
46
+ def to_dict(self) -> Dict[str, Any]:
47
+ duid = self.duid
48
+
49
+ accessible_by_team = self.accessible_by_team
50
+
51
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
52
+ if not isinstance(self.accessible_by_user_duids, Unset):
53
+ accessible_by_user_duids = self.accessible_by_user_duids
54
+
55
+ order = self.order
56
+
57
+ title = self.title
58
+
59
+ description = self.description
60
+
61
+ icon_kind: Union[Unset, str] = UNSET
62
+ if not isinstance(self.icon_kind, Unset):
63
+ icon_kind = self.icon_kind.value
64
+
65
+ icon_name_or_emoji = self.icon_name_or_emoji
66
+
67
+ color_hex = self.color_hex
68
+
69
+ layout_duid = self.layout_duid
70
+
71
+ favorited_by_user_duids: Union[Unset, List[str]] = UNSET
72
+ if not isinstance(self.favorited_by_user_duids, Unset):
73
+ favorited_by_user_duids = self.favorited_by_user_duids
74
+
75
+ charts = self.charts
76
+
77
+ field_dict: Dict[str, Any] = {}
78
+ field_dict.update(self.additional_properties)
79
+ field_dict.update(
80
+ {
81
+ "duid": duid,
82
+ }
83
+ )
84
+ if accessible_by_team is not UNSET:
85
+ field_dict["accessibleByTeam"] = accessible_by_team
86
+ if accessible_by_user_duids is not UNSET:
87
+ field_dict["accessibleByUserDuids"] = accessible_by_user_duids
88
+ if order is not UNSET:
89
+ field_dict["order"] = order
90
+ if title is not UNSET:
91
+ field_dict["title"] = title
92
+ if description is not UNSET:
93
+ field_dict["description"] = description
94
+ if icon_kind is not UNSET:
95
+ field_dict["iconKind"] = icon_kind
96
+ if icon_name_or_emoji is not UNSET:
97
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
98
+ if color_hex is not UNSET:
99
+ field_dict["colorHex"] = color_hex
100
+ if layout_duid is not UNSET:
101
+ field_dict["layoutDuid"] = layout_duid
102
+ if favorited_by_user_duids is not UNSET:
103
+ field_dict["favoritedByUserDuids"] = favorited_by_user_duids
104
+ if charts is not UNSET:
105
+ field_dict["charts"] = charts
106
+
107
+ return field_dict
108
+
109
+ @classmethod
110
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
111
+ d = src_dict.copy()
112
+ duid = d.pop("duid")
113
+
114
+ accessible_by_team = d.pop("accessibleByTeam", UNSET)
115
+
116
+ accessible_by_user_duids = cast(List[str], d.pop("accessibleByUserDuids", UNSET))
117
+
118
+ order = d.pop("order", UNSET)
119
+
120
+ title = d.pop("title", UNSET)
121
+
122
+ description = d.pop("description", UNSET)
123
+
124
+ _icon_kind = d.pop("iconKind", UNSET)
125
+ icon_kind: Union[Unset, IconKind]
126
+ if isinstance(_icon_kind, Unset):
127
+ icon_kind = UNSET
128
+ else:
129
+ icon_kind = IconKind(_icon_kind)
130
+
131
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
132
+
133
+ color_hex = d.pop("colorHex", UNSET)
134
+
135
+ layout_duid = d.pop("layoutDuid", UNSET)
136
+
137
+ favorited_by_user_duids = cast(List[str], d.pop("favoritedByUserDuids", UNSET))
138
+
139
+ charts = d.pop("charts", UNSET)
140
+
141
+ dashboard_update = cls(
142
+ duid=duid,
143
+ accessible_by_team=accessible_by_team,
144
+ accessible_by_user_duids=accessible_by_user_duids,
145
+ order=order,
146
+ title=title,
147
+ description=description,
148
+ icon_kind=icon_kind,
149
+ icon_name_or_emoji=icon_name_or_emoji,
150
+ color_hex=color_hex,
151
+ layout_duid=layout_duid,
152
+ favorited_by_user_duids=favorited_by_user_duids,
153
+ charts=charts,
154
+ )
155
+
156
+ dashboard_update.additional_properties = d
157
+ return dashboard_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,72 @@
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
+ T = TypeVar("T", bound="DiscordIntegration")
7
+
8
+
9
+ @_attrs_define
10
+ class DiscordIntegration:
11
+ """
12
+ Attributes:
13
+ enabled (bool):
14
+ webhook_url (Union[None, str]):
15
+ """
16
+
17
+ enabled: bool
18
+ webhook_url: Union[None, str]
19
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+
21
+ def to_dict(self) -> Dict[str, Any]:
22
+ enabled = self.enabled
23
+
24
+ webhook_url: Union[None, str]
25
+ webhook_url = self.webhook_url
26
+
27
+ field_dict: Dict[str, Any] = {}
28
+ field_dict.update(self.additional_properties)
29
+ field_dict.update(
30
+ {
31
+ "enabled": enabled,
32
+ "webhookUrl": webhook_url,
33
+ }
34
+ )
35
+
36
+ return field_dict
37
+
38
+ @classmethod
39
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
40
+ d = src_dict.copy()
41
+ enabled = d.pop("enabled")
42
+
43
+ def _parse_webhook_url(data: object) -> Union[None, str]:
44
+ if data is None:
45
+ return data
46
+ return cast(Union[None, str], data)
47
+
48
+ webhook_url = _parse_webhook_url(d.pop("webhookUrl"))
49
+
50
+ discord_integration = cls(
51
+ enabled=enabled,
52
+ webhook_url=webhook_url,
53
+ )
54
+
55
+ discord_integration.additional_properties = d
56
+ return discord_integration
57
+
58
+ @property
59
+ def additional_keys(self) -> List[str]:
60
+ return list(self.additional_properties.keys())
61
+
62
+ def __getitem__(self, key: str) -> Any:
63
+ return self.additional_properties[key]
64
+
65
+ def __setitem__(self, key: str, value: Any) -> None:
66
+ self.additional_properties[key] = value
67
+
68
+ def __delitem__(self, key: str) -> None:
69
+ del self.additional_properties[key]
70
+
71
+ def __contains__(self, key: str) -> bool:
72
+ return key in self.additional_properties
@@ -0,0 +1,243 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
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.icon_kind import IconKind
9
+ from ..models.report_kind import ReportKind
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="Doc")
13
+
14
+
15
+ @_attrs_define
16
+ class Doc:
17
+ """
18
+ Attributes:
19
+ duid (str):
20
+ created_at (datetime.datetime):
21
+ updated_at (datetime.datetime):
22
+ drafter_duid (Union[None, str]):
23
+ in_trash (bool):
24
+ folder_duid (str):
25
+ report_kind (Union[None, ReportKind]):
26
+ order (str):
27
+ title (str):
28
+ text (Any):
29
+ edited_by_ai (bool):
30
+ recommendation_duid (Union[None, str]):
31
+ editor_duids (List[str]):
32
+ subscriber_duids (List[str]):
33
+ icon_kind (IconKind): * `None` - NONE
34
+ * `Icon` - ICON
35
+ * `Emoji` - EMOJI
36
+ icon_name_or_emoji (str):
37
+ color_hex (str):
38
+ updated_by_client_duid (Union[None, Unset, str]):
39
+ """
40
+
41
+ duid: str
42
+ created_at: datetime.datetime
43
+ updated_at: datetime.datetime
44
+ drafter_duid: Union[None, str]
45
+ in_trash: bool
46
+ folder_duid: str
47
+ report_kind: Union[None, ReportKind]
48
+ order: str
49
+ title: str
50
+ text: Any
51
+ edited_by_ai: bool
52
+ recommendation_duid: Union[None, str]
53
+ editor_duids: List[str]
54
+ subscriber_duids: List[str]
55
+ icon_kind: IconKind
56
+ icon_name_or_emoji: str
57
+ color_hex: str
58
+ updated_by_client_duid: Union[None, Unset, str] = UNSET
59
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
60
+
61
+ def to_dict(self) -> Dict[str, Any]:
62
+ duid = self.duid
63
+
64
+ created_at = self.created_at.isoformat()
65
+
66
+ updated_at = self.updated_at.isoformat()
67
+
68
+ drafter_duid: Union[None, str]
69
+ drafter_duid = self.drafter_duid
70
+
71
+ in_trash = self.in_trash
72
+
73
+ folder_duid = self.folder_duid
74
+
75
+ report_kind: Union[None, str]
76
+ if isinstance(self.report_kind, ReportKind):
77
+ report_kind = self.report_kind.value
78
+ else:
79
+ report_kind = self.report_kind
80
+
81
+ order = self.order
82
+
83
+ title = self.title
84
+
85
+ text = self.text
86
+
87
+ edited_by_ai = self.edited_by_ai
88
+
89
+ recommendation_duid: Union[None, str]
90
+ recommendation_duid = self.recommendation_duid
91
+
92
+ editor_duids = self.editor_duids
93
+
94
+ subscriber_duids = self.subscriber_duids
95
+
96
+ icon_kind = self.icon_kind.value
97
+
98
+ icon_name_or_emoji = self.icon_name_or_emoji
99
+
100
+ color_hex = self.color_hex
101
+
102
+ updated_by_client_duid: Union[None, Unset, str]
103
+ if isinstance(self.updated_by_client_duid, Unset):
104
+ updated_by_client_duid = UNSET
105
+ else:
106
+ updated_by_client_duid = self.updated_by_client_duid
107
+
108
+ field_dict: Dict[str, Any] = {}
109
+ field_dict.update(self.additional_properties)
110
+ field_dict.update(
111
+ {
112
+ "duid": duid,
113
+ "createdAt": created_at,
114
+ "updatedAt": updated_at,
115
+ "drafterDuid": drafter_duid,
116
+ "inTrash": in_trash,
117
+ "folderDuid": folder_duid,
118
+ "reportKind": report_kind,
119
+ "order": order,
120
+ "title": title,
121
+ "text": text,
122
+ "editedByAi": edited_by_ai,
123
+ "recommendationDuid": recommendation_duid,
124
+ "editorDuids": editor_duids,
125
+ "subscriberDuids": subscriber_duids,
126
+ "iconKind": icon_kind,
127
+ "iconNameOrEmoji": icon_name_or_emoji,
128
+ "colorHex": color_hex,
129
+ }
130
+ )
131
+ if updated_by_client_duid is not UNSET:
132
+ field_dict["updatedByClientDuid"] = updated_by_client_duid
133
+
134
+ return field_dict
135
+
136
+ @classmethod
137
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
138
+ d = src_dict.copy()
139
+ duid = d.pop("duid")
140
+
141
+ created_at = isoparse(d.pop("createdAt"))
142
+
143
+ updated_at = isoparse(d.pop("updatedAt"))
144
+
145
+ def _parse_drafter_duid(data: object) -> Union[None, str]:
146
+ if data is None:
147
+ return data
148
+ return cast(Union[None, str], data)
149
+
150
+ drafter_duid = _parse_drafter_duid(d.pop("drafterDuid"))
151
+
152
+ in_trash = d.pop("inTrash")
153
+
154
+ folder_duid = d.pop("folderDuid")
155
+
156
+ def _parse_report_kind(data: object) -> Union[None, ReportKind]:
157
+ if data is None:
158
+ return data
159
+ try:
160
+ if not isinstance(data, str):
161
+ raise TypeError()
162
+ report_kind_type_0 = ReportKind(data)
163
+
164
+ return report_kind_type_0
165
+ except: # noqa: E722
166
+ pass
167
+ return cast(Union[None, ReportKind], data)
168
+
169
+ report_kind = _parse_report_kind(d.pop("reportKind"))
170
+
171
+ order = d.pop("order")
172
+
173
+ title = d.pop("title")
174
+
175
+ text = d.pop("text")
176
+
177
+ edited_by_ai = d.pop("editedByAi")
178
+
179
+ def _parse_recommendation_duid(data: object) -> Union[None, str]:
180
+ if data is None:
181
+ return data
182
+ return cast(Union[None, str], data)
183
+
184
+ recommendation_duid = _parse_recommendation_duid(d.pop("recommendationDuid"))
185
+
186
+ editor_duids = cast(List[str], d.pop("editorDuids"))
187
+
188
+ subscriber_duids = cast(List[str], d.pop("subscriberDuids"))
189
+
190
+ icon_kind = IconKind(d.pop("iconKind"))
191
+
192
+ icon_name_or_emoji = d.pop("iconNameOrEmoji")
193
+
194
+ color_hex = d.pop("colorHex")
195
+
196
+ def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
197
+ if data is None:
198
+ return data
199
+ if isinstance(data, Unset):
200
+ return data
201
+ return cast(Union[None, Unset, str], data)
202
+
203
+ updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
204
+
205
+ doc = cls(
206
+ duid=duid,
207
+ created_at=created_at,
208
+ updated_at=updated_at,
209
+ drafter_duid=drafter_duid,
210
+ in_trash=in_trash,
211
+ folder_duid=folder_duid,
212
+ report_kind=report_kind,
213
+ order=order,
214
+ title=title,
215
+ text=text,
216
+ edited_by_ai=edited_by_ai,
217
+ recommendation_duid=recommendation_duid,
218
+ editor_duids=editor_duids,
219
+ subscriber_duids=subscriber_duids,
220
+ icon_kind=icon_kind,
221
+ icon_name_or_emoji=icon_name_or_emoji,
222
+ color_hex=color_hex,
223
+ updated_by_client_duid=updated_by_client_duid,
224
+ )
225
+
226
+ doc.additional_properties = d
227
+ return doc
228
+
229
+ @property
230
+ def additional_keys(self) -> List[str]:
231
+ return list(self.additional_properties.keys())
232
+
233
+ def __getitem__(self, key: str) -> Any:
234
+ return self.additional_properties[key]
235
+
236
+ def __setitem__(self, key: str, value: Any) -> None:
237
+ self.additional_properties[key] = value
238
+
239
+ def __delitem__(self, key: str) -> None:
240
+ del self.additional_properties[key]
241
+
242
+ def __contains__(self, key: str) -> bool:
243
+ return key in self.additional_properties