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,311 @@
1
+ import datetime
2
+ from typing import Any, Dict, List, Type, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+ from dateutil.parser import isoparse
7
+
8
+ from ..models.icon_kind import IconKind
9
+ from ..models.sprint_mode import SprintMode
10
+ from ..types import UNSET, Unset
11
+
12
+ T = TypeVar("T", bound="SpaceUpdate")
13
+
14
+
15
+ @_attrs_define
16
+ class SpaceUpdate:
17
+ """
18
+ Attributes:
19
+ duid (str):
20
+ drafter_duid (Union[None, Unset, str]):
21
+ accessible_by_team (Union[Unset, bool]):
22
+ accessible_by_user_duids (Union[Unset, List[str]]):
23
+ order (Union[Unset, str]):
24
+ title (Union[Unset, str]):
25
+ abrev (Union[Unset, str]):
26
+ description (Union[Unset, str]):
27
+ icon_kind (Union[Unset, IconKind]): * `None` - NONE
28
+ * `Icon` - ICON
29
+ * `Emoji` - EMOJI
30
+ icon_name_or_emoji (Union[Unset, str]):
31
+ color_hex (Union[Unset, str]):
32
+ sprint_mode (Union[Unset, SprintMode]): * `None` - NONE
33
+ * `ANBA` - ANBA
34
+ sprint_replicate_on_rollover (Union[Unset, bool]):
35
+ sprint_name_fmt (Union[Unset, str]):
36
+ standup_recurrence (Union[Any, None, Unset]):
37
+ standup_recurs_next_at (Union[None, Unset, datetime.datetime]):
38
+ changelog_recurrence (Union[Any, None, Unset]):
39
+ changelog_recurs_next_at (Union[None, Unset, datetime.datetime]):
40
+ """
41
+
42
+ duid: str
43
+ drafter_duid: Union[None, Unset, str] = UNSET
44
+ accessible_by_team: Union[Unset, bool] = UNSET
45
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
46
+ order: Union[Unset, str] = UNSET
47
+ title: Union[Unset, str] = UNSET
48
+ abrev: 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
+ sprint_mode: Union[Unset, SprintMode] = UNSET
54
+ sprint_replicate_on_rollover: Union[Unset, bool] = UNSET
55
+ sprint_name_fmt: Union[Unset, str] = UNSET
56
+ standup_recurrence: Union[Any, None, Unset] = UNSET
57
+ standup_recurs_next_at: Union[None, Unset, datetime.datetime] = UNSET
58
+ changelog_recurrence: Union[Any, None, Unset] = UNSET
59
+ changelog_recurs_next_at: Union[None, Unset, datetime.datetime] = UNSET
60
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ duid = self.duid
64
+
65
+ drafter_duid: Union[None, Unset, str]
66
+ if isinstance(self.drafter_duid, Unset):
67
+ drafter_duid = UNSET
68
+ else:
69
+ drafter_duid = self.drafter_duid
70
+
71
+ accessible_by_team = self.accessible_by_team
72
+
73
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
74
+ if not isinstance(self.accessible_by_user_duids, Unset):
75
+ accessible_by_user_duids = self.accessible_by_user_duids
76
+
77
+ order = self.order
78
+
79
+ title = self.title
80
+
81
+ abrev = self.abrev
82
+
83
+ description = self.description
84
+
85
+ icon_kind: Union[Unset, str] = UNSET
86
+ if not isinstance(self.icon_kind, Unset):
87
+ icon_kind = self.icon_kind.value
88
+
89
+ icon_name_or_emoji = self.icon_name_or_emoji
90
+
91
+ color_hex = self.color_hex
92
+
93
+ sprint_mode: Union[Unset, str] = UNSET
94
+ if not isinstance(self.sprint_mode, Unset):
95
+ sprint_mode = self.sprint_mode.value
96
+
97
+ sprint_replicate_on_rollover = self.sprint_replicate_on_rollover
98
+
99
+ sprint_name_fmt = self.sprint_name_fmt
100
+
101
+ standup_recurrence: Union[Any, None, Unset]
102
+ if isinstance(self.standup_recurrence, Unset):
103
+ standup_recurrence = UNSET
104
+ else:
105
+ standup_recurrence = self.standup_recurrence
106
+
107
+ standup_recurs_next_at: Union[None, Unset, str]
108
+ if isinstance(self.standup_recurs_next_at, Unset):
109
+ standup_recurs_next_at = UNSET
110
+ elif isinstance(self.standup_recurs_next_at, datetime.datetime):
111
+ standup_recurs_next_at = self.standup_recurs_next_at.isoformat()
112
+ else:
113
+ standup_recurs_next_at = self.standup_recurs_next_at
114
+
115
+ changelog_recurrence: Union[Any, None, Unset]
116
+ if isinstance(self.changelog_recurrence, Unset):
117
+ changelog_recurrence = UNSET
118
+ else:
119
+ changelog_recurrence = self.changelog_recurrence
120
+
121
+ changelog_recurs_next_at: Union[None, Unset, str]
122
+ if isinstance(self.changelog_recurs_next_at, Unset):
123
+ changelog_recurs_next_at = UNSET
124
+ elif isinstance(self.changelog_recurs_next_at, datetime.datetime):
125
+ changelog_recurs_next_at = self.changelog_recurs_next_at.isoformat()
126
+ else:
127
+ changelog_recurs_next_at = self.changelog_recurs_next_at
128
+
129
+ field_dict: Dict[str, Any] = {}
130
+ field_dict.update(self.additional_properties)
131
+ field_dict.update(
132
+ {
133
+ "duid": duid,
134
+ }
135
+ )
136
+ if drafter_duid is not UNSET:
137
+ field_dict["drafterDuid"] = drafter_duid
138
+ if accessible_by_team is not UNSET:
139
+ field_dict["accessibleByTeam"] = accessible_by_team
140
+ if accessible_by_user_duids is not UNSET:
141
+ field_dict["accessibleByUserDuids"] = accessible_by_user_duids
142
+ if order is not UNSET:
143
+ field_dict["order"] = order
144
+ if title is not UNSET:
145
+ field_dict["title"] = title
146
+ if abrev is not UNSET:
147
+ field_dict["abrev"] = abrev
148
+ if description is not UNSET:
149
+ field_dict["description"] = description
150
+ if icon_kind is not UNSET:
151
+ field_dict["iconKind"] = icon_kind
152
+ if icon_name_or_emoji is not UNSET:
153
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
154
+ if color_hex is not UNSET:
155
+ field_dict["colorHex"] = color_hex
156
+ if sprint_mode is not UNSET:
157
+ field_dict["sprintMode"] = sprint_mode
158
+ if sprint_replicate_on_rollover is not UNSET:
159
+ field_dict["sprintReplicateOnRollover"] = sprint_replicate_on_rollover
160
+ if sprint_name_fmt is not UNSET:
161
+ field_dict["sprintNameFmt"] = sprint_name_fmt
162
+ if standup_recurrence is not UNSET:
163
+ field_dict["standupRecurrence"] = standup_recurrence
164
+ if standup_recurs_next_at is not UNSET:
165
+ field_dict["standupRecursNextAt"] = standup_recurs_next_at
166
+ if changelog_recurrence is not UNSET:
167
+ field_dict["changelogRecurrence"] = changelog_recurrence
168
+ if changelog_recurs_next_at is not UNSET:
169
+ field_dict["changelogRecursNextAt"] = changelog_recurs_next_at
170
+
171
+ return field_dict
172
+
173
+ @classmethod
174
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
175
+ d = src_dict.copy()
176
+ duid = d.pop("duid")
177
+
178
+ def _parse_drafter_duid(data: object) -> Union[None, Unset, str]:
179
+ if data is None:
180
+ return data
181
+ if isinstance(data, Unset):
182
+ return data
183
+ return cast(Union[None, Unset, str], data)
184
+
185
+ drafter_duid = _parse_drafter_duid(d.pop("drafterDuid", UNSET))
186
+
187
+ accessible_by_team = d.pop("accessibleByTeam", UNSET)
188
+
189
+ accessible_by_user_duids = cast(List[str], d.pop("accessibleByUserDuids", UNSET))
190
+
191
+ order = d.pop("order", UNSET)
192
+
193
+ title = d.pop("title", UNSET)
194
+
195
+ abrev = d.pop("abrev", UNSET)
196
+
197
+ description = d.pop("description", UNSET)
198
+
199
+ _icon_kind = d.pop("iconKind", UNSET)
200
+ icon_kind: Union[Unset, IconKind]
201
+ if isinstance(_icon_kind, Unset):
202
+ icon_kind = UNSET
203
+ else:
204
+ icon_kind = IconKind(_icon_kind)
205
+
206
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
207
+
208
+ color_hex = d.pop("colorHex", UNSET)
209
+
210
+ _sprint_mode = d.pop("sprintMode", UNSET)
211
+ sprint_mode: Union[Unset, SprintMode]
212
+ if isinstance(_sprint_mode, Unset):
213
+ sprint_mode = UNSET
214
+ else:
215
+ sprint_mode = SprintMode(_sprint_mode)
216
+
217
+ sprint_replicate_on_rollover = d.pop("sprintReplicateOnRollover", UNSET)
218
+
219
+ sprint_name_fmt = d.pop("sprintNameFmt", UNSET)
220
+
221
+ def _parse_standup_recurrence(data: object) -> Union[Any, None, Unset]:
222
+ if data is None:
223
+ return data
224
+ if isinstance(data, Unset):
225
+ return data
226
+ return cast(Union[Any, None, Unset], data)
227
+
228
+ standup_recurrence = _parse_standup_recurrence(d.pop("standupRecurrence", UNSET))
229
+
230
+ def _parse_standup_recurs_next_at(data: object) -> Union[None, Unset, datetime.datetime]:
231
+ if data is None:
232
+ return data
233
+ if isinstance(data, Unset):
234
+ return data
235
+ try:
236
+ if not isinstance(data, str):
237
+ raise TypeError()
238
+ standup_recurs_next_at_type_0 = isoparse(data)
239
+
240
+ return standup_recurs_next_at_type_0
241
+ except: # noqa: E722
242
+ pass
243
+ return cast(Union[None, Unset, datetime.datetime], data)
244
+
245
+ standup_recurs_next_at = _parse_standup_recurs_next_at(d.pop("standupRecursNextAt", UNSET))
246
+
247
+ def _parse_changelog_recurrence(data: object) -> Union[Any, None, Unset]:
248
+ if data is None:
249
+ return data
250
+ if isinstance(data, Unset):
251
+ return data
252
+ return cast(Union[Any, None, Unset], data)
253
+
254
+ changelog_recurrence = _parse_changelog_recurrence(d.pop("changelogRecurrence", UNSET))
255
+
256
+ def _parse_changelog_recurs_next_at(data: object) -> Union[None, Unset, datetime.datetime]:
257
+ if data is None:
258
+ return data
259
+ if isinstance(data, Unset):
260
+ return data
261
+ try:
262
+ if not isinstance(data, str):
263
+ raise TypeError()
264
+ changelog_recurs_next_at_type_0 = isoparse(data)
265
+
266
+ return changelog_recurs_next_at_type_0
267
+ except: # noqa: E722
268
+ pass
269
+ return cast(Union[None, Unset, datetime.datetime], data)
270
+
271
+ changelog_recurs_next_at = _parse_changelog_recurs_next_at(d.pop("changelogRecursNextAt", UNSET))
272
+
273
+ space_update = cls(
274
+ duid=duid,
275
+ drafter_duid=drafter_duid,
276
+ accessible_by_team=accessible_by_team,
277
+ accessible_by_user_duids=accessible_by_user_duids,
278
+ order=order,
279
+ title=title,
280
+ abrev=abrev,
281
+ description=description,
282
+ icon_kind=icon_kind,
283
+ icon_name_or_emoji=icon_name_or_emoji,
284
+ color_hex=color_hex,
285
+ sprint_mode=sprint_mode,
286
+ sprint_replicate_on_rollover=sprint_replicate_on_rollover,
287
+ sprint_name_fmt=sprint_name_fmt,
288
+ standup_recurrence=standup_recurrence,
289
+ standup_recurs_next_at=standup_recurs_next_at,
290
+ changelog_recurrence=changelog_recurrence,
291
+ changelog_recurs_next_at=changelog_recurs_next_at,
292
+ )
293
+
294
+ space_update.additional_properties = d
295
+ return space_update
296
+
297
+ @property
298
+ def additional_keys(self) -> List[str]:
299
+ return list(self.additional_properties.keys())
300
+
301
+ def __getitem__(self, key: str) -> Any:
302
+ return self.additional_properties[key]
303
+
304
+ def __setitem__(self, key: str, value: Any) -> None:
305
+ self.additional_properties[key] = value
306
+
307
+ def __delitem__(self, key: str) -> None:
308
+ del self.additional_properties[key]
309
+
310
+ def __contains__(self, key: str) -> bool:
311
+ return key in self.additional_properties
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class SprintMode(str, Enum):
5
+ ANBA = "ANBA"
6
+ NONE = "None"
7
+
8
+ def __str__(self) -> str:
9
+ return str(self.value)
@@ -0,0 +1,141 @@
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.status_kind import StatusKind
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="Status")
10
+
11
+
12
+ @_attrs_define
13
+ class Status:
14
+ """
15
+ Attributes:
16
+ duid (str):
17
+ property_duid (str):
18
+ kind (StatusKind): * `Unstarted` - UNSTARTED
19
+ * `Started` - STARTED
20
+ * `Blocked` - BLOCKED
21
+ * `Finished` - FINISHED
22
+ * `Canceled` - CANCELED
23
+ locked (bool):
24
+ order (str):
25
+ title (str):
26
+ color_hex (str):
27
+ description (str):
28
+ updated_by_client_duid (Union[None, Unset, str]):
29
+ """
30
+
31
+ duid: str
32
+ property_duid: str
33
+ kind: StatusKind
34
+ locked: bool
35
+ order: str
36
+ title: str
37
+ color_hex: str
38
+ description: str
39
+ updated_by_client_duid: Union[None, Unset, str] = UNSET
40
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
41
+
42
+ def to_dict(self) -> Dict[str, Any]:
43
+ duid = self.duid
44
+
45
+ property_duid = self.property_duid
46
+
47
+ kind = self.kind.value
48
+
49
+ locked = self.locked
50
+
51
+ order = self.order
52
+
53
+ title = self.title
54
+
55
+ color_hex = self.color_hex
56
+
57
+ description = self.description
58
+
59
+ updated_by_client_duid: Union[None, Unset, str]
60
+ if isinstance(self.updated_by_client_duid, Unset):
61
+ updated_by_client_duid = UNSET
62
+ else:
63
+ updated_by_client_duid = self.updated_by_client_duid
64
+
65
+ field_dict: Dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update(
68
+ {
69
+ "duid": duid,
70
+ "propertyDuid": property_duid,
71
+ "kind": kind,
72
+ "locked": locked,
73
+ "order": order,
74
+ "title": title,
75
+ "colorHex": color_hex,
76
+ "description": description,
77
+ }
78
+ )
79
+ if updated_by_client_duid is not UNSET:
80
+ field_dict["updatedByClientDuid"] = updated_by_client_duid
81
+
82
+ return field_dict
83
+
84
+ @classmethod
85
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
86
+ d = src_dict.copy()
87
+ duid = d.pop("duid")
88
+
89
+ property_duid = d.pop("propertyDuid")
90
+
91
+ kind = StatusKind(d.pop("kind"))
92
+
93
+ locked = d.pop("locked")
94
+
95
+ order = d.pop("order")
96
+
97
+ title = d.pop("title")
98
+
99
+ color_hex = d.pop("colorHex")
100
+
101
+ description = d.pop("description")
102
+
103
+ def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
104
+ if data is None:
105
+ return data
106
+ if isinstance(data, Unset):
107
+ return data
108
+ return cast(Union[None, Unset, str], data)
109
+
110
+ updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
111
+
112
+ status = cls(
113
+ duid=duid,
114
+ property_duid=property_duid,
115
+ kind=kind,
116
+ locked=locked,
117
+ order=order,
118
+ title=title,
119
+ color_hex=color_hex,
120
+ description=description,
121
+ updated_by_client_duid=updated_by_client_duid,
122
+ )
123
+
124
+ status.additional_properties = d
125
+ return status
126
+
127
+ @property
128
+ def additional_keys(self) -> List[str]:
129
+ return list(self.additional_properties.keys())
130
+
131
+ def __getitem__(self, key: str) -> Any:
132
+ return self.additional_properties[key]
133
+
134
+ def __setitem__(self, key: str, value: Any) -> None:
135
+ self.additional_properties[key] = value
136
+
137
+ def __delitem__(self, key: str) -> None:
138
+ del self.additional_properties[key]
139
+
140
+ def __contains__(self, key: str) -> bool:
141
+ return key in self.additional_properties
@@ -0,0 +1,125 @@
1
+ from typing import Any, Dict, List, Type, TypeVar, Union
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.status_kind import StatusKind
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="StatusCreate")
10
+
11
+
12
+ @_attrs_define
13
+ class StatusCreate:
14
+ """
15
+ Attributes:
16
+ duid (str):
17
+ property_duid (str):
18
+ kind (StatusKind): * `Unstarted` - UNSTARTED
19
+ * `Started` - STARTED
20
+ * `Blocked` - BLOCKED
21
+ * `Finished` - FINISHED
22
+ * `Canceled` - CANCELED
23
+ order (str):
24
+ locked (Union[Unset, bool]):
25
+ title (Union[Unset, str]):
26
+ color_hex (Union[Unset, str]):
27
+ description (Union[Unset, str]):
28
+ """
29
+
30
+ duid: str
31
+ property_duid: str
32
+ kind: StatusKind
33
+ order: str
34
+ locked: Union[Unset, bool] = UNSET
35
+ title: Union[Unset, str] = UNSET
36
+ color_hex: Union[Unset, str] = UNSET
37
+ description: Union[Unset, str] = UNSET
38
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
39
+
40
+ def to_dict(self) -> Dict[str, Any]:
41
+ duid = self.duid
42
+
43
+ property_duid = self.property_duid
44
+
45
+ kind = self.kind.value
46
+
47
+ order = self.order
48
+
49
+ locked = self.locked
50
+
51
+ title = self.title
52
+
53
+ color_hex = self.color_hex
54
+
55
+ description = self.description
56
+
57
+ field_dict: Dict[str, Any] = {}
58
+ field_dict.update(self.additional_properties)
59
+ field_dict.update(
60
+ {
61
+ "duid": duid,
62
+ "propertyDuid": property_duid,
63
+ "kind": kind,
64
+ "order": order,
65
+ }
66
+ )
67
+ if locked is not UNSET:
68
+ field_dict["locked"] = locked
69
+ if title is not UNSET:
70
+ field_dict["title"] = title
71
+ if color_hex is not UNSET:
72
+ field_dict["colorHex"] = color_hex
73
+ if description is not UNSET:
74
+ field_dict["description"] = description
75
+
76
+ return field_dict
77
+
78
+ @classmethod
79
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
80
+ d = src_dict.copy()
81
+ duid = d.pop("duid")
82
+
83
+ property_duid = d.pop("propertyDuid")
84
+
85
+ kind = StatusKind(d.pop("kind"))
86
+
87
+ order = d.pop("order")
88
+
89
+ locked = d.pop("locked", UNSET)
90
+
91
+ title = d.pop("title", UNSET)
92
+
93
+ color_hex = d.pop("colorHex", UNSET)
94
+
95
+ description = d.pop("description", UNSET)
96
+
97
+ status_create = cls(
98
+ duid=duid,
99
+ property_duid=property_duid,
100
+ kind=kind,
101
+ order=order,
102
+ locked=locked,
103
+ title=title,
104
+ color_hex=color_hex,
105
+ description=description,
106
+ )
107
+
108
+ status_create.additional_properties = d
109
+ return status_create
110
+
111
+ @property
112
+ def additional_keys(self) -> List[str]:
113
+ return list(self.additional_properties.keys())
114
+
115
+ def __getitem__(self, key: str) -> Any:
116
+ return self.additional_properties[key]
117
+
118
+ def __setitem__(self, key: str, value: Any) -> None:
119
+ self.additional_properties[key] = value
120
+
121
+ def __delitem__(self, key: str) -> None:
122
+ del self.additional_properties[key]
123
+
124
+ def __contains__(self, key: str) -> bool:
125
+ return key in self.additional_properties
@@ -0,0 +1,12 @@
1
+ from enum import Enum
2
+
3
+
4
+ class StatusKind(str, Enum):
5
+ BLOCKED = "Blocked"
6
+ CANCELED = "Canceled"
7
+ FINISHED = "Finished"
8
+ STARTED = "Started"
9
+ UNSTARTED = "Unstarted"
10
+
11
+ def __str__(self) -> str:
12
+ return str(self.value)