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,287 @@
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
+ default_property_map (Union[Unset, Any]):
38
+ always_shown_property_duids (Union[Unset, List[str]]):
39
+ always_hidden_property_duids (Union[Unset, List[str]]):
40
+ property_order_duids (Union[Unset, List[str]]):
41
+ property_width_map (Union[Unset, Any]):
42
+ """
43
+
44
+ duid: str
45
+ space_duid: Union[Unset, str] = UNSET
46
+ kind: Union[Unset, DartboardKind] = UNSET
47
+ order: Union[Unset, str] = UNSET
48
+ title: Union[Unset, str] = UNSET
49
+ description: Union[Unset, str] = UNSET
50
+ icon_kind: Union[Unset, IconKind] = UNSET
51
+ icon_name_or_emoji: Union[Unset, str] = UNSET
52
+ color_hex: Union[Unset, str] = UNSET
53
+ index: Union[None, Unset, int] = UNSET
54
+ started_at: Union[None, Unset, datetime.datetime] = UNSET
55
+ finished_at: Union[None, Unset, datetime.datetime] = UNSET
56
+ default_property_map: Union[Unset, Any] = UNSET
57
+ always_shown_property_duids: Union[Unset, List[str]] = UNSET
58
+ always_hidden_property_duids: Union[Unset, List[str]] = UNSET
59
+ property_order_duids: Union[Unset, List[str]] = UNSET
60
+ property_width_map: Union[Unset, Any] = UNSET
61
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
62
+
63
+ def to_dict(self) -> Dict[str, Any]:
64
+ duid = self.duid
65
+
66
+ space_duid = self.space_duid
67
+
68
+ kind: Union[Unset, str] = UNSET
69
+ if not isinstance(self.kind, Unset):
70
+ kind = self.kind.value
71
+
72
+ order = self.order
73
+
74
+ title = self.title
75
+
76
+ description = self.description
77
+
78
+ icon_kind: Union[Unset, str] = UNSET
79
+ if not isinstance(self.icon_kind, Unset):
80
+ icon_kind = self.icon_kind.value
81
+
82
+ icon_name_or_emoji = self.icon_name_or_emoji
83
+
84
+ color_hex = self.color_hex
85
+
86
+ index: Union[None, Unset, int]
87
+ if isinstance(self.index, Unset):
88
+ index = UNSET
89
+ else:
90
+ index = self.index
91
+
92
+ started_at: Union[None, Unset, str]
93
+ if isinstance(self.started_at, Unset):
94
+ started_at = UNSET
95
+ elif isinstance(self.started_at, datetime.datetime):
96
+ started_at = self.started_at.isoformat()
97
+ else:
98
+ started_at = self.started_at
99
+
100
+ finished_at: Union[None, Unset, str]
101
+ if isinstance(self.finished_at, Unset):
102
+ finished_at = UNSET
103
+ elif isinstance(self.finished_at, datetime.datetime):
104
+ finished_at = self.finished_at.isoformat()
105
+ else:
106
+ finished_at = self.finished_at
107
+
108
+ default_property_map = self.default_property_map
109
+
110
+ always_shown_property_duids: Union[Unset, List[str]] = UNSET
111
+ if not isinstance(self.always_shown_property_duids, Unset):
112
+ always_shown_property_duids = self.always_shown_property_duids
113
+
114
+ always_hidden_property_duids: Union[Unset, List[str]] = UNSET
115
+ if not isinstance(self.always_hidden_property_duids, Unset):
116
+ always_hidden_property_duids = self.always_hidden_property_duids
117
+
118
+ property_order_duids: Union[Unset, List[str]] = UNSET
119
+ if not isinstance(self.property_order_duids, Unset):
120
+ property_order_duids = self.property_order_duids
121
+
122
+ property_width_map = self.property_width_map
123
+
124
+ field_dict: Dict[str, Any] = {}
125
+ field_dict.update(self.additional_properties)
126
+ field_dict.update(
127
+ {
128
+ "duid": duid,
129
+ }
130
+ )
131
+ if space_duid is not UNSET:
132
+ field_dict["spaceDuid"] = space_duid
133
+ if kind is not UNSET:
134
+ field_dict["kind"] = kind
135
+ if order is not UNSET:
136
+ field_dict["order"] = order
137
+ if title is not UNSET:
138
+ field_dict["title"] = title
139
+ if description is not UNSET:
140
+ field_dict["description"] = description
141
+ if icon_kind is not UNSET:
142
+ field_dict["iconKind"] = icon_kind
143
+ if icon_name_or_emoji is not UNSET:
144
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
145
+ if color_hex is not UNSET:
146
+ field_dict["colorHex"] = color_hex
147
+ if index is not UNSET:
148
+ field_dict["index"] = index
149
+ if started_at is not UNSET:
150
+ field_dict["startedAt"] = started_at
151
+ if finished_at is not UNSET:
152
+ field_dict["finishedAt"] = finished_at
153
+ if default_property_map is not UNSET:
154
+ field_dict["defaultPropertyMap"] = default_property_map
155
+ if always_shown_property_duids is not UNSET:
156
+ field_dict["alwaysShownPropertyDuids"] = always_shown_property_duids
157
+ if always_hidden_property_duids is not UNSET:
158
+ field_dict["alwaysHiddenPropertyDuids"] = always_hidden_property_duids
159
+ if property_order_duids is not UNSET:
160
+ field_dict["propertyOrderDuids"] = property_order_duids
161
+ if property_width_map is not UNSET:
162
+ field_dict["propertyWidthMap"] = property_width_map
163
+
164
+ return field_dict
165
+
166
+ @classmethod
167
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
168
+ d = src_dict.copy()
169
+ duid = d.pop("duid")
170
+
171
+ space_duid = d.pop("spaceDuid", UNSET)
172
+
173
+ _kind = d.pop("kind", UNSET)
174
+ kind: Union[Unset, DartboardKind]
175
+ if isinstance(_kind, Unset):
176
+ kind = UNSET
177
+ else:
178
+ kind = DartboardKind(_kind)
179
+
180
+ order = d.pop("order", UNSET)
181
+
182
+ title = d.pop("title", UNSET)
183
+
184
+ description = d.pop("description", UNSET)
185
+
186
+ _icon_kind = d.pop("iconKind", UNSET)
187
+ icon_kind: Union[Unset, IconKind]
188
+ if isinstance(_icon_kind, Unset):
189
+ icon_kind = UNSET
190
+ else:
191
+ icon_kind = IconKind(_icon_kind)
192
+
193
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
194
+
195
+ color_hex = d.pop("colorHex", UNSET)
196
+
197
+ def _parse_index(data: object) -> Union[None, Unset, int]:
198
+ if data is None:
199
+ return data
200
+ if isinstance(data, Unset):
201
+ return data
202
+ return cast(Union[None, Unset, int], data)
203
+
204
+ index = _parse_index(d.pop("index", UNSET))
205
+
206
+ def _parse_started_at(data: object) -> Union[None, Unset, datetime.datetime]:
207
+ if data is None:
208
+ return data
209
+ if isinstance(data, Unset):
210
+ return data
211
+ try:
212
+ if not isinstance(data, str):
213
+ raise TypeError()
214
+ started_at_type_0 = isoparse(data)
215
+
216
+ return started_at_type_0
217
+ except: # noqa: E722
218
+ pass
219
+ return cast(Union[None, Unset, datetime.datetime], data)
220
+
221
+ started_at = _parse_started_at(d.pop("startedAt", UNSET))
222
+
223
+ def _parse_finished_at(data: object) -> Union[None, Unset, datetime.datetime]:
224
+ if data is None:
225
+ return data
226
+ if isinstance(data, Unset):
227
+ return data
228
+ try:
229
+ if not isinstance(data, str):
230
+ raise TypeError()
231
+ finished_at_type_0 = isoparse(data)
232
+
233
+ return finished_at_type_0
234
+ except: # noqa: E722
235
+ pass
236
+ return cast(Union[None, Unset, datetime.datetime], data)
237
+
238
+ finished_at = _parse_finished_at(d.pop("finishedAt", UNSET))
239
+
240
+ default_property_map = d.pop("defaultPropertyMap", UNSET)
241
+
242
+ always_shown_property_duids = cast(List[str], d.pop("alwaysShownPropertyDuids", UNSET))
243
+
244
+ always_hidden_property_duids = cast(List[str], d.pop("alwaysHiddenPropertyDuids", UNSET))
245
+
246
+ property_order_duids = cast(List[str], d.pop("propertyOrderDuids", UNSET))
247
+
248
+ property_width_map = d.pop("propertyWidthMap", UNSET)
249
+
250
+ dartboard_update = cls(
251
+ duid=duid,
252
+ space_duid=space_duid,
253
+ kind=kind,
254
+ order=order,
255
+ title=title,
256
+ description=description,
257
+ icon_kind=icon_kind,
258
+ icon_name_or_emoji=icon_name_or_emoji,
259
+ color_hex=color_hex,
260
+ index=index,
261
+ started_at=started_at,
262
+ finished_at=finished_at,
263
+ default_property_map=default_property_map,
264
+ always_shown_property_duids=always_shown_property_duids,
265
+ always_hidden_property_duids=always_hidden_property_duids,
266
+ property_order_duids=property_order_duids,
267
+ property_width_map=property_width_map,
268
+ )
269
+
270
+ dartboard_update.additional_properties = d
271
+ return dartboard_update
272
+
273
+ @property
274
+ def additional_keys(self) -> List[str]:
275
+ return list(self.additional_properties.keys())
276
+
277
+ def __getitem__(self, key: str) -> Any:
278
+ return self.additional_properties[key]
279
+
280
+ def __setitem__(self, key: str, value: Any) -> None:
281
+ self.additional_properties[key] = value
282
+
283
+ def __delitem__(self, key: str) -> None:
284
+ del self.additional_properties[key]
285
+
286
+ def __contains__(self, key: str) -> bool:
287
+ 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