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,361 @@
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
+ rollover_recurrence (Union[Any, None, Unset]):
41
+ rollover_recurs_next_at (Union[None, Unset, datetime.datetime]):
42
+ """
43
+
44
+ duid: str
45
+ drafter_duid: Union[None, Unset, str] = UNSET
46
+ accessible_by_team: Union[Unset, bool] = UNSET
47
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
48
+ order: Union[Unset, str] = UNSET
49
+ title: Union[Unset, str] = UNSET
50
+ abrev: Union[Unset, str] = UNSET
51
+ description: Union[Unset, str] = UNSET
52
+ icon_kind: Union[Unset, IconKind] = UNSET
53
+ icon_name_or_emoji: Union[Unset, str] = UNSET
54
+ color_hex: Union[Unset, str] = UNSET
55
+ sprint_mode: Union[Unset, SprintMode] = UNSET
56
+ sprint_replicate_on_rollover: Union[Unset, bool] = UNSET
57
+ sprint_name_fmt: Union[Unset, str] = UNSET
58
+ standup_recurrence: Union[Any, None, Unset] = UNSET
59
+ standup_recurs_next_at: Union[None, Unset, datetime.datetime] = UNSET
60
+ changelog_recurrence: Union[Any, None, Unset] = UNSET
61
+ changelog_recurs_next_at: Union[None, Unset, datetime.datetime] = UNSET
62
+ rollover_recurrence: Union[Any, None, Unset] = UNSET
63
+ rollover_recurs_next_at: Union[None, Unset, datetime.datetime] = UNSET
64
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
65
+
66
+ def to_dict(self) -> Dict[str, Any]:
67
+ duid = self.duid
68
+
69
+ drafter_duid: Union[None, Unset, str]
70
+ if isinstance(self.drafter_duid, Unset):
71
+ drafter_duid = UNSET
72
+ else:
73
+ drafter_duid = self.drafter_duid
74
+
75
+ accessible_by_team = self.accessible_by_team
76
+
77
+ accessible_by_user_duids: Union[Unset, List[str]] = UNSET
78
+ if not isinstance(self.accessible_by_user_duids, Unset):
79
+ accessible_by_user_duids = self.accessible_by_user_duids
80
+
81
+ order = self.order
82
+
83
+ title = self.title
84
+
85
+ abrev = self.abrev
86
+
87
+ description = self.description
88
+
89
+ icon_kind: Union[Unset, str] = UNSET
90
+ if not isinstance(self.icon_kind, Unset):
91
+ icon_kind = self.icon_kind.value
92
+
93
+ icon_name_or_emoji = self.icon_name_or_emoji
94
+
95
+ color_hex = self.color_hex
96
+
97
+ sprint_mode: Union[Unset, str] = UNSET
98
+ if not isinstance(self.sprint_mode, Unset):
99
+ sprint_mode = self.sprint_mode.value
100
+
101
+ sprint_replicate_on_rollover = self.sprint_replicate_on_rollover
102
+
103
+ sprint_name_fmt = self.sprint_name_fmt
104
+
105
+ standup_recurrence: Union[Any, None, Unset]
106
+ if isinstance(self.standup_recurrence, Unset):
107
+ standup_recurrence = UNSET
108
+ else:
109
+ standup_recurrence = self.standup_recurrence
110
+
111
+ standup_recurs_next_at: Union[None, Unset, str]
112
+ if isinstance(self.standup_recurs_next_at, Unset):
113
+ standup_recurs_next_at = UNSET
114
+ elif isinstance(self.standup_recurs_next_at, datetime.datetime):
115
+ standup_recurs_next_at = self.standup_recurs_next_at.isoformat()
116
+ else:
117
+ standup_recurs_next_at = self.standup_recurs_next_at
118
+
119
+ changelog_recurrence: Union[Any, None, Unset]
120
+ if isinstance(self.changelog_recurrence, Unset):
121
+ changelog_recurrence = UNSET
122
+ else:
123
+ changelog_recurrence = self.changelog_recurrence
124
+
125
+ changelog_recurs_next_at: Union[None, Unset, str]
126
+ if isinstance(self.changelog_recurs_next_at, Unset):
127
+ changelog_recurs_next_at = UNSET
128
+ elif isinstance(self.changelog_recurs_next_at, datetime.datetime):
129
+ changelog_recurs_next_at = self.changelog_recurs_next_at.isoformat()
130
+ else:
131
+ changelog_recurs_next_at = self.changelog_recurs_next_at
132
+
133
+ rollover_recurrence: Union[Any, None, Unset]
134
+ if isinstance(self.rollover_recurrence, Unset):
135
+ rollover_recurrence = UNSET
136
+ else:
137
+ rollover_recurrence = self.rollover_recurrence
138
+
139
+ rollover_recurs_next_at: Union[None, Unset, str]
140
+ if isinstance(self.rollover_recurs_next_at, Unset):
141
+ rollover_recurs_next_at = UNSET
142
+ elif isinstance(self.rollover_recurs_next_at, datetime.datetime):
143
+ rollover_recurs_next_at = self.rollover_recurs_next_at.isoformat()
144
+ else:
145
+ rollover_recurs_next_at = self.rollover_recurs_next_at
146
+
147
+ field_dict: Dict[str, Any] = {}
148
+ field_dict.update(self.additional_properties)
149
+ field_dict.update(
150
+ {
151
+ "duid": duid,
152
+ }
153
+ )
154
+ if drafter_duid is not UNSET:
155
+ field_dict["drafterDuid"] = drafter_duid
156
+ if accessible_by_team is not UNSET:
157
+ field_dict["accessibleByTeam"] = accessible_by_team
158
+ if accessible_by_user_duids is not UNSET:
159
+ field_dict["accessibleByUserDuids"] = accessible_by_user_duids
160
+ if order is not UNSET:
161
+ field_dict["order"] = order
162
+ if title is not UNSET:
163
+ field_dict["title"] = title
164
+ if abrev is not UNSET:
165
+ field_dict["abrev"] = abrev
166
+ if description is not UNSET:
167
+ field_dict["description"] = description
168
+ if icon_kind is not UNSET:
169
+ field_dict["iconKind"] = icon_kind
170
+ if icon_name_or_emoji is not UNSET:
171
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
172
+ if color_hex is not UNSET:
173
+ field_dict["colorHex"] = color_hex
174
+ if sprint_mode is not UNSET:
175
+ field_dict["sprintMode"] = sprint_mode
176
+ if sprint_replicate_on_rollover is not UNSET:
177
+ field_dict["sprintReplicateOnRollover"] = sprint_replicate_on_rollover
178
+ if sprint_name_fmt is not UNSET:
179
+ field_dict["sprintNameFmt"] = sprint_name_fmt
180
+ if standup_recurrence is not UNSET:
181
+ field_dict["standupRecurrence"] = standup_recurrence
182
+ if standup_recurs_next_at is not UNSET:
183
+ field_dict["standupRecursNextAt"] = standup_recurs_next_at
184
+ if changelog_recurrence is not UNSET:
185
+ field_dict["changelogRecurrence"] = changelog_recurrence
186
+ if changelog_recurs_next_at is not UNSET:
187
+ field_dict["changelogRecursNextAt"] = changelog_recurs_next_at
188
+ if rollover_recurrence is not UNSET:
189
+ field_dict["rolloverRecurrence"] = rollover_recurrence
190
+ if rollover_recurs_next_at is not UNSET:
191
+ field_dict["rolloverRecursNextAt"] = rollover_recurs_next_at
192
+
193
+ return field_dict
194
+
195
+ @classmethod
196
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
197
+ d = src_dict.copy()
198
+ duid = d.pop("duid")
199
+
200
+ def _parse_drafter_duid(data: object) -> Union[None, Unset, str]:
201
+ if data is None:
202
+ return data
203
+ if isinstance(data, Unset):
204
+ return data
205
+ return cast(Union[None, Unset, str], data)
206
+
207
+ drafter_duid = _parse_drafter_duid(d.pop("drafterDuid", UNSET))
208
+
209
+ accessible_by_team = d.pop("accessibleByTeam", UNSET)
210
+
211
+ accessible_by_user_duids = cast(List[str], d.pop("accessibleByUserDuids", UNSET))
212
+
213
+ order = d.pop("order", UNSET)
214
+
215
+ title = d.pop("title", UNSET)
216
+
217
+ abrev = d.pop("abrev", UNSET)
218
+
219
+ description = d.pop("description", UNSET)
220
+
221
+ _icon_kind = d.pop("iconKind", UNSET)
222
+ icon_kind: Union[Unset, IconKind]
223
+ if isinstance(_icon_kind, Unset):
224
+ icon_kind = UNSET
225
+ else:
226
+ icon_kind = IconKind(_icon_kind)
227
+
228
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
229
+
230
+ color_hex = d.pop("colorHex", UNSET)
231
+
232
+ _sprint_mode = d.pop("sprintMode", UNSET)
233
+ sprint_mode: Union[Unset, SprintMode]
234
+ if isinstance(_sprint_mode, Unset):
235
+ sprint_mode = UNSET
236
+ else:
237
+ sprint_mode = SprintMode(_sprint_mode)
238
+
239
+ sprint_replicate_on_rollover = d.pop("sprintReplicateOnRollover", UNSET)
240
+
241
+ sprint_name_fmt = d.pop("sprintNameFmt", UNSET)
242
+
243
+ def _parse_standup_recurrence(data: object) -> Union[Any, None, Unset]:
244
+ if data is None:
245
+ return data
246
+ if isinstance(data, Unset):
247
+ return data
248
+ return cast(Union[Any, None, Unset], data)
249
+
250
+ standup_recurrence = _parse_standup_recurrence(d.pop("standupRecurrence", UNSET))
251
+
252
+ def _parse_standup_recurs_next_at(data: object) -> Union[None, Unset, datetime.datetime]:
253
+ if data is None:
254
+ return data
255
+ if isinstance(data, Unset):
256
+ return data
257
+ try:
258
+ if not isinstance(data, str):
259
+ raise TypeError()
260
+ standup_recurs_next_at_type_0 = isoparse(data)
261
+
262
+ return standup_recurs_next_at_type_0
263
+ except: # noqa: E722
264
+ pass
265
+ return cast(Union[None, Unset, datetime.datetime], data)
266
+
267
+ standup_recurs_next_at = _parse_standup_recurs_next_at(d.pop("standupRecursNextAt", UNSET))
268
+
269
+ def _parse_changelog_recurrence(data: object) -> Union[Any, None, Unset]:
270
+ if data is None:
271
+ return data
272
+ if isinstance(data, Unset):
273
+ return data
274
+ return cast(Union[Any, None, Unset], data)
275
+
276
+ changelog_recurrence = _parse_changelog_recurrence(d.pop("changelogRecurrence", UNSET))
277
+
278
+ def _parse_changelog_recurs_next_at(data: object) -> Union[None, Unset, datetime.datetime]:
279
+ if data is None:
280
+ return data
281
+ if isinstance(data, Unset):
282
+ return data
283
+ try:
284
+ if not isinstance(data, str):
285
+ raise TypeError()
286
+ changelog_recurs_next_at_type_0 = isoparse(data)
287
+
288
+ return changelog_recurs_next_at_type_0
289
+ except: # noqa: E722
290
+ pass
291
+ return cast(Union[None, Unset, datetime.datetime], data)
292
+
293
+ changelog_recurs_next_at = _parse_changelog_recurs_next_at(d.pop("changelogRecursNextAt", UNSET))
294
+
295
+ def _parse_rollover_recurrence(data: object) -> Union[Any, None, Unset]:
296
+ if data is None:
297
+ return data
298
+ if isinstance(data, Unset):
299
+ return data
300
+ return cast(Union[Any, None, Unset], data)
301
+
302
+ rollover_recurrence = _parse_rollover_recurrence(d.pop("rolloverRecurrence", UNSET))
303
+
304
+ def _parse_rollover_recurs_next_at(data: object) -> Union[None, Unset, datetime.datetime]:
305
+ if data is None:
306
+ return data
307
+ if isinstance(data, Unset):
308
+ return data
309
+ try:
310
+ if not isinstance(data, str):
311
+ raise TypeError()
312
+ rollover_recurs_next_at_type_0 = isoparse(data)
313
+
314
+ return rollover_recurs_next_at_type_0
315
+ except: # noqa: E722
316
+ pass
317
+ return cast(Union[None, Unset, datetime.datetime], data)
318
+
319
+ rollover_recurs_next_at = _parse_rollover_recurs_next_at(d.pop("rolloverRecursNextAt", UNSET))
320
+
321
+ space_update = cls(
322
+ duid=duid,
323
+ drafter_duid=drafter_duid,
324
+ accessible_by_team=accessible_by_team,
325
+ accessible_by_user_duids=accessible_by_user_duids,
326
+ order=order,
327
+ title=title,
328
+ abrev=abrev,
329
+ description=description,
330
+ icon_kind=icon_kind,
331
+ icon_name_or_emoji=icon_name_or_emoji,
332
+ color_hex=color_hex,
333
+ sprint_mode=sprint_mode,
334
+ sprint_replicate_on_rollover=sprint_replicate_on_rollover,
335
+ sprint_name_fmt=sprint_name_fmt,
336
+ standup_recurrence=standup_recurrence,
337
+ standup_recurs_next_at=standup_recurs_next_at,
338
+ changelog_recurrence=changelog_recurrence,
339
+ changelog_recurs_next_at=changelog_recurs_next_at,
340
+ rollover_recurrence=rollover_recurrence,
341
+ rollover_recurs_next_at=rollover_recurs_next_at,
342
+ )
343
+
344
+ space_update.additional_properties = d
345
+ return space_update
346
+
347
+ @property
348
+ def additional_keys(self) -> List[str]:
349
+ return list(self.additional_properties.keys())
350
+
351
+ def __getitem__(self, key: str) -> Any:
352
+ return self.additional_properties[key]
353
+
354
+ def __setitem__(self, key: str, value: Any) -> None:
355
+ self.additional_properties[key] = value
356
+
357
+ def __delitem__(self, key: str) -> None:
358
+ del self.additional_properties[key]
359
+
360
+ def __contains__(self, key: str) -> bool:
361
+ 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)