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,269 @@
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.dartboard_kind import DartboardKind
9
+ from ..models.icon_kind import IconKind
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="DartboardUpdate")
13
+
14
+
15
+ @_attrs_define
16
+ class DartboardUpdate:
17
+ """
18
+ Attributes:
19
+ duid (str):
20
+ space_duid (Union[Unset, str]):
21
+ kind (Union[Unset, DartboardKind]): * `Active` - ACTIVE
22
+ * `Next` - NEXT
23
+ * `Backlog` - BACKLOG
24
+ * `Finished` - FINISHED
25
+ * `Custom` - CUSTOM
26
+ order (Union[Unset, str]):
27
+ title (Union[Unset, str]):
28
+ description (Union[Unset, str]):
29
+ icon_kind (Union[Unset, IconKind]): * `None` - NONE
30
+ * `Icon` - ICON
31
+ * `Emoji` - EMOJI
32
+ icon_name_or_emoji (Union[Unset, str]):
33
+ color_hex (Union[Unset, str]):
34
+ index (Union[None, Unset, int]):
35
+ started_at (Union[None, Unset, datetime.datetime]):
36
+ finished_at (Union[None, Unset, datetime.datetime]):
37
+ always_shown_property_duids (Union[Unset, List[str]]):
38
+ always_hidden_property_duids (Union[Unset, List[str]]):
39
+ property_order_duids (Union[Unset, List[str]]):
40
+ """
41
+
42
+ duid: str
43
+ space_duid: Union[Unset, str] = UNSET
44
+ kind: Union[Unset, DartboardKind] = UNSET
45
+ order: Union[Unset, str] = UNSET
46
+ title: Union[Unset, str] = UNSET
47
+ description: Union[Unset, str] = UNSET
48
+ icon_kind: Union[Unset, IconKind] = UNSET
49
+ icon_name_or_emoji: Union[Unset, str] = UNSET
50
+ color_hex: Union[Unset, str] = UNSET
51
+ index: Union[None, Unset, int] = UNSET
52
+ started_at: Union[None, Unset, datetime.datetime] = UNSET
53
+ finished_at: Union[None, Unset, datetime.datetime] = UNSET
54
+ always_shown_property_duids: Union[Unset, List[str]] = UNSET
55
+ always_hidden_property_duids: Union[Unset, List[str]] = UNSET
56
+ property_order_duids: Union[Unset, List[str]] = UNSET
57
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
58
+
59
+ def to_dict(self) -> Dict[str, Any]:
60
+ duid = self.duid
61
+
62
+ space_duid = self.space_duid
63
+
64
+ kind: Union[Unset, str] = UNSET
65
+ if not isinstance(self.kind, Unset):
66
+ kind = self.kind.value
67
+
68
+ order = self.order
69
+
70
+ title = self.title
71
+
72
+ description = self.description
73
+
74
+ icon_kind: Union[Unset, str] = UNSET
75
+ if not isinstance(self.icon_kind, Unset):
76
+ icon_kind = self.icon_kind.value
77
+
78
+ icon_name_or_emoji = self.icon_name_or_emoji
79
+
80
+ color_hex = self.color_hex
81
+
82
+ index: Union[None, Unset, int]
83
+ if isinstance(self.index, Unset):
84
+ index = UNSET
85
+ else:
86
+ index = self.index
87
+
88
+ started_at: Union[None, Unset, str]
89
+ if isinstance(self.started_at, Unset):
90
+ started_at = UNSET
91
+ elif isinstance(self.started_at, datetime.datetime):
92
+ started_at = self.started_at.isoformat()
93
+ else:
94
+ started_at = self.started_at
95
+
96
+ finished_at: Union[None, Unset, str]
97
+ if isinstance(self.finished_at, Unset):
98
+ finished_at = UNSET
99
+ elif isinstance(self.finished_at, datetime.datetime):
100
+ finished_at = self.finished_at.isoformat()
101
+ else:
102
+ finished_at = self.finished_at
103
+
104
+ always_shown_property_duids: Union[Unset, List[str]] = UNSET
105
+ if not isinstance(self.always_shown_property_duids, Unset):
106
+ always_shown_property_duids = self.always_shown_property_duids
107
+
108
+ always_hidden_property_duids: Union[Unset, List[str]] = UNSET
109
+ if not isinstance(self.always_hidden_property_duids, Unset):
110
+ always_hidden_property_duids = self.always_hidden_property_duids
111
+
112
+ property_order_duids: Union[Unset, List[str]] = UNSET
113
+ if not isinstance(self.property_order_duids, Unset):
114
+ property_order_duids = self.property_order_duids
115
+
116
+ field_dict: Dict[str, Any] = {}
117
+ field_dict.update(self.additional_properties)
118
+ field_dict.update(
119
+ {
120
+ "duid": duid,
121
+ }
122
+ )
123
+ if space_duid is not UNSET:
124
+ field_dict["spaceDuid"] = space_duid
125
+ if kind is not UNSET:
126
+ field_dict["kind"] = kind
127
+ if order is not UNSET:
128
+ field_dict["order"] = order
129
+ if title is not UNSET:
130
+ field_dict["title"] = title
131
+ if description is not UNSET:
132
+ field_dict["description"] = description
133
+ if icon_kind is not UNSET:
134
+ field_dict["iconKind"] = icon_kind
135
+ if icon_name_or_emoji is not UNSET:
136
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
137
+ if color_hex is not UNSET:
138
+ field_dict["colorHex"] = color_hex
139
+ if index is not UNSET:
140
+ field_dict["index"] = index
141
+ if started_at is not UNSET:
142
+ field_dict["startedAt"] = started_at
143
+ if finished_at is not UNSET:
144
+ field_dict["finishedAt"] = finished_at
145
+ if always_shown_property_duids is not UNSET:
146
+ field_dict["alwaysShownPropertyDuids"] = always_shown_property_duids
147
+ if always_hidden_property_duids is not UNSET:
148
+ field_dict["alwaysHiddenPropertyDuids"] = always_hidden_property_duids
149
+ if property_order_duids is not UNSET:
150
+ field_dict["propertyOrderDuids"] = property_order_duids
151
+
152
+ return field_dict
153
+
154
+ @classmethod
155
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
156
+ d = src_dict.copy()
157
+ duid = d.pop("duid")
158
+
159
+ space_duid = d.pop("spaceDuid", UNSET)
160
+
161
+ _kind = d.pop("kind", UNSET)
162
+ kind: Union[Unset, DartboardKind]
163
+ if isinstance(_kind, Unset):
164
+ kind = UNSET
165
+ else:
166
+ kind = DartboardKind(_kind)
167
+
168
+ order = d.pop("order", UNSET)
169
+
170
+ title = d.pop("title", UNSET)
171
+
172
+ description = d.pop("description", UNSET)
173
+
174
+ _icon_kind = d.pop("iconKind", UNSET)
175
+ icon_kind: Union[Unset, IconKind]
176
+ if isinstance(_icon_kind, Unset):
177
+ icon_kind = UNSET
178
+ else:
179
+ icon_kind = IconKind(_icon_kind)
180
+
181
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
182
+
183
+ color_hex = d.pop("colorHex", UNSET)
184
+
185
+ def _parse_index(data: object) -> Union[None, Unset, int]:
186
+ if data is None:
187
+ return data
188
+ if isinstance(data, Unset):
189
+ return data
190
+ return cast(Union[None, Unset, int], data)
191
+
192
+ index = _parse_index(d.pop("index", UNSET))
193
+
194
+ def _parse_started_at(data: object) -> Union[None, Unset, datetime.datetime]:
195
+ if data is None:
196
+ return data
197
+ if isinstance(data, Unset):
198
+ return data
199
+ try:
200
+ if not isinstance(data, str):
201
+ raise TypeError()
202
+ started_at_type_0 = isoparse(data)
203
+
204
+ return started_at_type_0
205
+ except: # noqa: E722
206
+ pass
207
+ return cast(Union[None, Unset, datetime.datetime], data)
208
+
209
+ started_at = _parse_started_at(d.pop("startedAt", UNSET))
210
+
211
+ def _parse_finished_at(data: object) -> Union[None, Unset, datetime.datetime]:
212
+ if data is None:
213
+ return data
214
+ if isinstance(data, Unset):
215
+ return data
216
+ try:
217
+ if not isinstance(data, str):
218
+ raise TypeError()
219
+ finished_at_type_0 = isoparse(data)
220
+
221
+ return finished_at_type_0
222
+ except: # noqa: E722
223
+ pass
224
+ return cast(Union[None, Unset, datetime.datetime], data)
225
+
226
+ finished_at = _parse_finished_at(d.pop("finishedAt", UNSET))
227
+
228
+ always_shown_property_duids = cast(List[str], d.pop("alwaysShownPropertyDuids", UNSET))
229
+
230
+ always_hidden_property_duids = cast(List[str], d.pop("alwaysHiddenPropertyDuids", UNSET))
231
+
232
+ property_order_duids = cast(List[str], d.pop("propertyOrderDuids", UNSET))
233
+
234
+ dartboard_update = cls(
235
+ duid=duid,
236
+ space_duid=space_duid,
237
+ kind=kind,
238
+ order=order,
239
+ title=title,
240
+ description=description,
241
+ icon_kind=icon_kind,
242
+ icon_name_or_emoji=icon_name_or_emoji,
243
+ color_hex=color_hex,
244
+ index=index,
245
+ started_at=started_at,
246
+ finished_at=finished_at,
247
+ always_shown_property_duids=always_shown_property_duids,
248
+ always_hidden_property_duids=always_hidden_property_duids,
249
+ property_order_duids=property_order_duids,
250
+ )
251
+
252
+ dartboard_update.additional_properties = d
253
+ return dartboard_update
254
+
255
+ @property
256
+ def additional_keys(self) -> List[str]:
257
+ return list(self.additional_properties.keys())
258
+
259
+ def __getitem__(self, key: str) -> Any:
260
+ return self.additional_properties[key]
261
+
262
+ def __setitem__(self, key: str, value: Any) -> None:
263
+ self.additional_properties[key] = value
264
+
265
+ def __delitem__(self, key: str) -> None:
266
+ del self.additional_properties[key]
267
+
268
+ def __contains__(self, key: str) -> bool:
269
+ return key in self.additional_properties
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class DartboardsListKind(str, Enum):
5
+ ACTIVE = "Active"
6
+ BACKLOG = "Backlog"
7
+ CUSTOM = "Custom"
8
+ FINISHED = "Finished"
9
+ NEXT = "Next"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)
@@ -0,0 +1,185 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar, Union, cast
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.icon_kind import IconKind
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.chart import Chart
11
+
12
+
13
+ T = TypeVar("T", bound="Dashboard")
14
+
15
+
16
+ @_attrs_define
17
+ class Dashboard:
18
+ """
19
+ Attributes:
20
+ duid (str):
21
+ accessible_by_team (bool):
22
+ accessible_by_user_duids (List[str]):
23
+ order (str):
24
+ title (str):
25
+ description (str):
26
+ icon_kind (IconKind): * `None` - NONE
27
+ * `Icon` - ICON
28
+ * `Emoji` - EMOJI
29
+ icon_name_or_emoji (str):
30
+ color_hex (str):
31
+ layout_duid (str):
32
+ favorited_by_user_duids (List[str]):
33
+ charts (List['Chart']):
34
+ updated_by_client_duid (Union[None, Unset, str]):
35
+ """
36
+
37
+ duid: str
38
+ accessible_by_team: bool
39
+ accessible_by_user_duids: List[str]
40
+ order: str
41
+ title: str
42
+ description: str
43
+ icon_kind: IconKind
44
+ icon_name_or_emoji: str
45
+ color_hex: str
46
+ layout_duid: str
47
+ favorited_by_user_duids: List[str]
48
+ charts: List["Chart"]
49
+ updated_by_client_duid: Union[None, Unset, str] = UNSET
50
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
51
+
52
+ def to_dict(self) -> Dict[str, Any]:
53
+ duid = self.duid
54
+
55
+ accessible_by_team = self.accessible_by_team
56
+
57
+ accessible_by_user_duids = self.accessible_by_user_duids
58
+
59
+ order = self.order
60
+
61
+ title = self.title
62
+
63
+ description = self.description
64
+
65
+ icon_kind = self.icon_kind.value
66
+
67
+ icon_name_or_emoji = self.icon_name_or_emoji
68
+
69
+ color_hex = self.color_hex
70
+
71
+ layout_duid = self.layout_duid
72
+
73
+ favorited_by_user_duids = self.favorited_by_user_duids
74
+
75
+ charts = []
76
+ for charts_item_data in self.charts:
77
+ charts_item = charts_item_data.to_dict()
78
+ charts.append(charts_item)
79
+
80
+ updated_by_client_duid: Union[None, Unset, str]
81
+ if isinstance(self.updated_by_client_duid, Unset):
82
+ updated_by_client_duid = UNSET
83
+ else:
84
+ updated_by_client_duid = self.updated_by_client_duid
85
+
86
+ field_dict: Dict[str, Any] = {}
87
+ field_dict.update(self.additional_properties)
88
+ field_dict.update(
89
+ {
90
+ "duid": duid,
91
+ "accessibleByTeam": accessible_by_team,
92
+ "accessibleByUserDuids": accessible_by_user_duids,
93
+ "order": order,
94
+ "title": title,
95
+ "description": description,
96
+ "iconKind": icon_kind,
97
+ "iconNameOrEmoji": icon_name_or_emoji,
98
+ "colorHex": color_hex,
99
+ "layoutDuid": layout_duid,
100
+ "favoritedByUserDuids": favorited_by_user_duids,
101
+ "charts": charts,
102
+ }
103
+ )
104
+ if updated_by_client_duid is not UNSET:
105
+ field_dict["updatedByClientDuid"] = updated_by_client_duid
106
+
107
+ return field_dict
108
+
109
+ @classmethod
110
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
111
+ from ..models.chart import Chart
112
+
113
+ d = src_dict.copy()
114
+ duid = d.pop("duid")
115
+
116
+ accessible_by_team = d.pop("accessibleByTeam")
117
+
118
+ accessible_by_user_duids = cast(List[str], d.pop("accessibleByUserDuids"))
119
+
120
+ order = d.pop("order")
121
+
122
+ title = d.pop("title")
123
+
124
+ description = d.pop("description")
125
+
126
+ icon_kind = IconKind(d.pop("iconKind"))
127
+
128
+ icon_name_or_emoji = d.pop("iconNameOrEmoji")
129
+
130
+ color_hex = d.pop("colorHex")
131
+
132
+ layout_duid = d.pop("layoutDuid")
133
+
134
+ favorited_by_user_duids = cast(List[str], d.pop("favoritedByUserDuids"))
135
+
136
+ charts = []
137
+ _charts = d.pop("charts")
138
+ for charts_item_data in _charts:
139
+ charts_item = Chart.from_dict(charts_item_data)
140
+
141
+ charts.append(charts_item)
142
+
143
+ def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
144
+ if data is None:
145
+ return data
146
+ if isinstance(data, Unset):
147
+ return data
148
+ return cast(Union[None, Unset, str], data)
149
+
150
+ updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
151
+
152
+ dashboard = cls(
153
+ duid=duid,
154
+ accessible_by_team=accessible_by_team,
155
+ accessible_by_user_duids=accessible_by_user_duids,
156
+ order=order,
157
+ title=title,
158
+ description=description,
159
+ icon_kind=icon_kind,
160
+ icon_name_or_emoji=icon_name_or_emoji,
161
+ color_hex=color_hex,
162
+ layout_duid=layout_duid,
163
+ favorited_by_user_duids=favorited_by_user_duids,
164
+ charts=charts,
165
+ updated_by_client_duid=updated_by_client_duid,
166
+ )
167
+
168
+ dashboard.additional_properties = d
169
+ return dashboard
170
+
171
+ @property
172
+ def additional_keys(self) -> List[str]:
173
+ return list(self.additional_properties.keys())
174
+
175
+ def __getitem__(self, key: str) -> Any:
176
+ return self.additional_properties[key]
177
+
178
+ def __setitem__(self, key: str, value: Any) -> None:
179
+ self.additional_properties[key] = value
180
+
181
+ def __delitem__(self, key: str) -> None:
182
+ del self.additional_properties[key]
183
+
184
+ def __contains__(self, key: str) -> bool:
185
+ return key in self.additional_properties
@@ -0,0 +1,171 @@
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="DashboardCreate")
10
+
11
+
12
+ @_attrs_define
13
+ class DashboardCreate:
14
+ """
15
+ Attributes:
16
+ duid (str):
17
+ order (str):
18
+ layout_duid (str):
19
+ accessible_by_team (Union[Unset, bool]):
20
+ accessible_by_user_duids (Union[Unset, List[str]]):
21
+ title (Union[Unset, str]):
22
+ description (Union[Unset, str]):
23
+ icon_kind (Union[Unset, IconKind]): * `None` - NONE
24
+ * `Icon` - ICON
25
+ * `Emoji` - EMOJI
26
+ icon_name_or_emoji (Union[Unset, str]):
27
+ color_hex (Union[Unset, str]):
28
+ favorited_by_user_duids (Union[Unset, List[str]]):
29
+ charts (Union[Unset, Any]):
30
+ """
31
+
32
+ duid: str
33
+ order: str
34
+ layout_duid: str
35
+ accessible_by_team: Union[Unset, bool] = UNSET
36
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
37
+ title: Union[Unset, str] = UNSET
38
+ description: Union[Unset, str] = UNSET
39
+ icon_kind: Union[Unset, IconKind] = UNSET
40
+ icon_name_or_emoji: Union[Unset, str] = UNSET
41
+ color_hex: 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
+ order = self.order
50
+
51
+ layout_duid = self.layout_duid
52
+
53
+ accessible_by_team = self.accessible_by_team
54
+
55
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
56
+ if not isinstance(self.accessible_by_user_duids, Unset):
57
+ accessible_by_user_duids = self.accessible_by_user_duids
58
+
59
+ title = self.title
60
+
61
+ description = self.description
62
+
63
+ icon_kind: Union[Unset, str] = UNSET
64
+ if not isinstance(self.icon_kind, Unset):
65
+ icon_kind = self.icon_kind.value
66
+
67
+ icon_name_or_emoji = self.icon_name_or_emoji
68
+
69
+ color_hex = self.color_hex
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
+ "order": order,
83
+ "layoutDuid": layout_duid,
84
+ }
85
+ )
86
+ if accessible_by_team is not UNSET:
87
+ field_dict["accessibleByTeam"] = accessible_by_team
88
+ if accessible_by_user_duids is not UNSET:
89
+ field_dict["accessibleByUserDuids"] = accessible_by_user_duids
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 favorited_by_user_duids is not UNSET:
101
+ field_dict["favoritedByUserDuids"] = favorited_by_user_duids
102
+ if charts is not UNSET:
103
+ field_dict["charts"] = charts
104
+
105
+ return field_dict
106
+
107
+ @classmethod
108
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
109
+ d = src_dict.copy()
110
+ duid = d.pop("duid")
111
+
112
+ order = d.pop("order")
113
+
114
+ layout_duid = d.pop("layoutDuid")
115
+
116
+ accessible_by_team = d.pop("accessibleByTeam", UNSET)
117
+
118
+ accessible_by_user_duids = cast(List[str], d.pop("accessibleByUserDuids", 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
+ favorited_by_user_duids = cast(List[str], d.pop("favoritedByUserDuids", UNSET))
136
+
137
+ charts = d.pop("charts", UNSET)
138
+
139
+ dashboard_create = cls(
140
+ duid=duid,
141
+ order=order,
142
+ layout_duid=layout_duid,
143
+ accessible_by_team=accessible_by_team,
144
+ accessible_by_user_duids=accessible_by_user_duids,
145
+ title=title,
146
+ description=description,
147
+ icon_kind=icon_kind,
148
+ icon_name_or_emoji=icon_name_or_emoji,
149
+ color_hex=color_hex,
150
+ favorited_by_user_duids=favorited_by_user_duids,
151
+ charts=charts,
152
+ )
153
+
154
+ dashboard_create.additional_properties = d
155
+ return dashboard_create
156
+
157
+ @property
158
+ def additional_keys(self) -> List[str]:
159
+ return list(self.additional_properties.keys())
160
+
161
+ def __getitem__(self, key: str) -> Any:
162
+ return self.additional_properties[key]
163
+
164
+ def __setitem__(self, key: str, value: Any) -> None:
165
+ self.additional_properties[key] = value
166
+
167
+ def __delitem__(self, key: str) -> None:
168
+ del self.additional_properties[key]
169
+
170
+ def __contains__(self, key: str) -> bool:
171
+ return key in self.additional_properties