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