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,378 @@
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.subscription import Subscription
9
+
10
+ if TYPE_CHECKING:
11
+ from ..models.discord_integration import DiscordIntegration
12
+ from ..models.github_integration import GithubIntegration
13
+ from ..models.notion_integration import NotionIntegration
14
+ from ..models.saml_config import SamlConfig
15
+ from ..models.slack_integration import SlackIntegration
16
+ from ..models.zapier_integration import ZapierIntegration
17
+
18
+
19
+ T = TypeVar("T", bound="Tenant")
20
+
21
+
22
+ @_attrs_define
23
+ class Tenant:
24
+ """
25
+ Attributes:
26
+ duid (str):
27
+ is_dart (bool):
28
+ name (str):
29
+ created_at (datetime.datetime):
30
+ timezone (str):
31
+ subscription (Subscription): * `Personal` - PERSONAL
32
+ * `Premium` - PREMIUM
33
+ entitlement_overrides (Any):
34
+ image_url (Union[None, str]):
35
+ backlog_enabled (bool):
36
+ ai_assignment_enabled (bool):
37
+ email_integration_enabled (bool):
38
+ close_parent_on_close_all_subtasks (bool):
39
+ move_subtasks_on_move_parent (bool):
40
+ update_subtasks_status_on_update_parent_status (bool):
41
+ copy_parent_fields_on_create (bool):
42
+ update_blockee_dates_on_update_blocker_due_date (bool):
43
+ webhook_enabled (bool):
44
+ webhook_secret (str):
45
+ saml_config (Union['SamlConfig', None]):
46
+ notion_integration (Union['NotionIntegration', None]):
47
+ slack_integration (Union['SlackIntegration', None]):
48
+ discord_integration (Union['DiscordIntegration', None]):
49
+ github_integration (Union['GithubIntegration', None]):
50
+ zapier_integration (Union['ZapierIntegration', None]):
51
+ """
52
+
53
+ duid: str
54
+ is_dart: bool
55
+ name: str
56
+ created_at: datetime.datetime
57
+ timezone: str
58
+ subscription: Subscription
59
+ entitlement_overrides: Any
60
+ image_url: Union[None, str]
61
+ backlog_enabled: bool
62
+ ai_assignment_enabled: bool
63
+ email_integration_enabled: bool
64
+ close_parent_on_close_all_subtasks: bool
65
+ move_subtasks_on_move_parent: bool
66
+ update_subtasks_status_on_update_parent_status: bool
67
+ copy_parent_fields_on_create: bool
68
+ update_blockee_dates_on_update_blocker_due_date: bool
69
+ webhook_enabled: bool
70
+ webhook_secret: str
71
+ saml_config: Union["SamlConfig", None]
72
+ notion_integration: Union["NotionIntegration", None]
73
+ slack_integration: Union["SlackIntegration", None]
74
+ discord_integration: Union["DiscordIntegration", None]
75
+ github_integration: Union["GithubIntegration", None]
76
+ zapier_integration: Union["ZapierIntegration", None]
77
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
78
+
79
+ def to_dict(self) -> Dict[str, Any]:
80
+ from ..models.discord_integration import DiscordIntegration
81
+ from ..models.github_integration import GithubIntegration
82
+ from ..models.notion_integration import NotionIntegration
83
+ from ..models.saml_config import SamlConfig
84
+ from ..models.slack_integration import SlackIntegration
85
+ from ..models.zapier_integration import ZapierIntegration
86
+
87
+ duid = self.duid
88
+
89
+ is_dart = self.is_dart
90
+
91
+ name = self.name
92
+
93
+ created_at = self.created_at.isoformat()
94
+
95
+ timezone = self.timezone
96
+
97
+ subscription = self.subscription.value
98
+
99
+ entitlement_overrides = self.entitlement_overrides
100
+
101
+ image_url: Union[None, str]
102
+ image_url = self.image_url
103
+
104
+ backlog_enabled = self.backlog_enabled
105
+
106
+ ai_assignment_enabled = self.ai_assignment_enabled
107
+
108
+ email_integration_enabled = self.email_integration_enabled
109
+
110
+ close_parent_on_close_all_subtasks = self.close_parent_on_close_all_subtasks
111
+
112
+ move_subtasks_on_move_parent = self.move_subtasks_on_move_parent
113
+
114
+ update_subtasks_status_on_update_parent_status = self.update_subtasks_status_on_update_parent_status
115
+
116
+ copy_parent_fields_on_create = self.copy_parent_fields_on_create
117
+
118
+ update_blockee_dates_on_update_blocker_due_date = self.update_blockee_dates_on_update_blocker_due_date
119
+
120
+ webhook_enabled = self.webhook_enabled
121
+
122
+ webhook_secret = self.webhook_secret
123
+
124
+ saml_config: Union[Dict[str, Any], None]
125
+ if isinstance(self.saml_config, SamlConfig):
126
+ saml_config = self.saml_config.to_dict()
127
+ else:
128
+ saml_config = self.saml_config
129
+
130
+ notion_integration: Union[Dict[str, Any], None]
131
+ if isinstance(self.notion_integration, NotionIntegration):
132
+ notion_integration = self.notion_integration.to_dict()
133
+ else:
134
+ notion_integration = self.notion_integration
135
+
136
+ slack_integration: Union[Dict[str, Any], None]
137
+ if isinstance(self.slack_integration, SlackIntegration):
138
+ slack_integration = self.slack_integration.to_dict()
139
+ else:
140
+ slack_integration = self.slack_integration
141
+
142
+ discord_integration: Union[Dict[str, Any], None]
143
+ if isinstance(self.discord_integration, DiscordIntegration):
144
+ discord_integration = self.discord_integration.to_dict()
145
+ else:
146
+ discord_integration = self.discord_integration
147
+
148
+ github_integration: Union[Dict[str, Any], None]
149
+ if isinstance(self.github_integration, GithubIntegration):
150
+ github_integration = self.github_integration.to_dict()
151
+ else:
152
+ github_integration = self.github_integration
153
+
154
+ zapier_integration: Union[Dict[str, Any], None]
155
+ if isinstance(self.zapier_integration, ZapierIntegration):
156
+ zapier_integration = self.zapier_integration.to_dict()
157
+ else:
158
+ zapier_integration = self.zapier_integration
159
+
160
+ field_dict: Dict[str, Any] = {}
161
+ field_dict.update(self.additional_properties)
162
+ field_dict.update(
163
+ {
164
+ "duid": duid,
165
+ "isDart": is_dart,
166
+ "name": name,
167
+ "createdAt": created_at,
168
+ "timezone": timezone,
169
+ "subscription": subscription,
170
+ "entitlementOverrides": entitlement_overrides,
171
+ "imageUrl": image_url,
172
+ "backlogEnabled": backlog_enabled,
173
+ "aiAssignmentEnabled": ai_assignment_enabled,
174
+ "emailIntegrationEnabled": email_integration_enabled,
175
+ "closeParentOnCloseAllSubtasks": close_parent_on_close_all_subtasks,
176
+ "moveSubtasksOnMoveParent": move_subtasks_on_move_parent,
177
+ "updateSubtasksStatusOnUpdateParentStatus": update_subtasks_status_on_update_parent_status,
178
+ "copyParentFieldsOnCreate": copy_parent_fields_on_create,
179
+ "updateBlockeeDatesOnUpdateBlockerDueDate": update_blockee_dates_on_update_blocker_due_date,
180
+ "webhookEnabled": webhook_enabled,
181
+ "webhookSecret": webhook_secret,
182
+ "samlConfig": saml_config,
183
+ "notionIntegration": notion_integration,
184
+ "slackIntegration": slack_integration,
185
+ "discordIntegration": discord_integration,
186
+ "githubIntegration": github_integration,
187
+ "zapierIntegration": zapier_integration,
188
+ }
189
+ )
190
+
191
+ return field_dict
192
+
193
+ @classmethod
194
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
195
+ from ..models.discord_integration import DiscordIntegration
196
+ from ..models.github_integration import GithubIntegration
197
+ from ..models.notion_integration import NotionIntegration
198
+ from ..models.saml_config import SamlConfig
199
+ from ..models.slack_integration import SlackIntegration
200
+ from ..models.zapier_integration import ZapierIntegration
201
+
202
+ d = src_dict.copy()
203
+ duid = d.pop("duid")
204
+
205
+ is_dart = d.pop("isDart")
206
+
207
+ name = d.pop("name")
208
+
209
+ created_at = isoparse(d.pop("createdAt"))
210
+
211
+ timezone = d.pop("timezone")
212
+
213
+ subscription = Subscription(d.pop("subscription"))
214
+
215
+ entitlement_overrides = d.pop("entitlementOverrides")
216
+
217
+ def _parse_image_url(data: object) -> Union[None, str]:
218
+ if data is None:
219
+ return data
220
+ return cast(Union[None, str], data)
221
+
222
+ image_url = _parse_image_url(d.pop("imageUrl"))
223
+
224
+ backlog_enabled = d.pop("backlogEnabled")
225
+
226
+ ai_assignment_enabled = d.pop("aiAssignmentEnabled")
227
+
228
+ email_integration_enabled = d.pop("emailIntegrationEnabled")
229
+
230
+ close_parent_on_close_all_subtasks = d.pop("closeParentOnCloseAllSubtasks")
231
+
232
+ move_subtasks_on_move_parent = d.pop("moveSubtasksOnMoveParent")
233
+
234
+ update_subtasks_status_on_update_parent_status = d.pop("updateSubtasksStatusOnUpdateParentStatus")
235
+
236
+ copy_parent_fields_on_create = d.pop("copyParentFieldsOnCreate")
237
+
238
+ update_blockee_dates_on_update_blocker_due_date = d.pop("updateBlockeeDatesOnUpdateBlockerDueDate")
239
+
240
+ webhook_enabled = d.pop("webhookEnabled")
241
+
242
+ webhook_secret = d.pop("webhookSecret")
243
+
244
+ def _parse_saml_config(data: object) -> Union["SamlConfig", None]:
245
+ if data is None:
246
+ return data
247
+ try:
248
+ if not isinstance(data, dict):
249
+ raise TypeError()
250
+ saml_config_type_0 = SamlConfig.from_dict(data)
251
+
252
+ return saml_config_type_0
253
+ except: # noqa: E722
254
+ pass
255
+ return cast(Union["SamlConfig", None], data)
256
+
257
+ saml_config = _parse_saml_config(d.pop("samlConfig"))
258
+
259
+ def _parse_notion_integration(data: object) -> Union["NotionIntegration", None]:
260
+ if data is None:
261
+ return data
262
+ try:
263
+ if not isinstance(data, dict):
264
+ raise TypeError()
265
+ notion_integration_type_0 = NotionIntegration.from_dict(data)
266
+
267
+ return notion_integration_type_0
268
+ except: # noqa: E722
269
+ pass
270
+ return cast(Union["NotionIntegration", None], data)
271
+
272
+ notion_integration = _parse_notion_integration(d.pop("notionIntegration"))
273
+
274
+ def _parse_slack_integration(data: object) -> Union["SlackIntegration", None]:
275
+ if data is None:
276
+ return data
277
+ try:
278
+ if not isinstance(data, dict):
279
+ raise TypeError()
280
+ slack_integration_type_0 = SlackIntegration.from_dict(data)
281
+
282
+ return slack_integration_type_0
283
+ except: # noqa: E722
284
+ pass
285
+ return cast(Union["SlackIntegration", None], data)
286
+
287
+ slack_integration = _parse_slack_integration(d.pop("slackIntegration"))
288
+
289
+ def _parse_discord_integration(data: object) -> Union["DiscordIntegration", None]:
290
+ if data is None:
291
+ return data
292
+ try:
293
+ if not isinstance(data, dict):
294
+ raise TypeError()
295
+ discord_integration_type_0 = DiscordIntegration.from_dict(data)
296
+
297
+ return discord_integration_type_0
298
+ except: # noqa: E722
299
+ pass
300
+ return cast(Union["DiscordIntegration", None], data)
301
+
302
+ discord_integration = _parse_discord_integration(d.pop("discordIntegration"))
303
+
304
+ def _parse_github_integration(data: object) -> Union["GithubIntegration", None]:
305
+ if data is None:
306
+ return data
307
+ try:
308
+ if not isinstance(data, dict):
309
+ raise TypeError()
310
+ github_integration_type_0 = GithubIntegration.from_dict(data)
311
+
312
+ return github_integration_type_0
313
+ except: # noqa: E722
314
+ pass
315
+ return cast(Union["GithubIntegration", None], data)
316
+
317
+ github_integration = _parse_github_integration(d.pop("githubIntegration"))
318
+
319
+ def _parse_zapier_integration(data: object) -> Union["ZapierIntegration", None]:
320
+ if data is None:
321
+ return data
322
+ try:
323
+ if not isinstance(data, dict):
324
+ raise TypeError()
325
+ zapier_integration_type_0 = ZapierIntegration.from_dict(data)
326
+
327
+ return zapier_integration_type_0
328
+ except: # noqa: E722
329
+ pass
330
+ return cast(Union["ZapierIntegration", None], data)
331
+
332
+ zapier_integration = _parse_zapier_integration(d.pop("zapierIntegration"))
333
+
334
+ tenant = cls(
335
+ duid=duid,
336
+ is_dart=is_dart,
337
+ name=name,
338
+ created_at=created_at,
339
+ timezone=timezone,
340
+ subscription=subscription,
341
+ entitlement_overrides=entitlement_overrides,
342
+ image_url=image_url,
343
+ backlog_enabled=backlog_enabled,
344
+ ai_assignment_enabled=ai_assignment_enabled,
345
+ email_integration_enabled=email_integration_enabled,
346
+ close_parent_on_close_all_subtasks=close_parent_on_close_all_subtasks,
347
+ move_subtasks_on_move_parent=move_subtasks_on_move_parent,
348
+ update_subtasks_status_on_update_parent_status=update_subtasks_status_on_update_parent_status,
349
+ copy_parent_fields_on_create=copy_parent_fields_on_create,
350
+ update_blockee_dates_on_update_blocker_due_date=update_blockee_dates_on_update_blocker_due_date,
351
+ webhook_enabled=webhook_enabled,
352
+ webhook_secret=webhook_secret,
353
+ saml_config=saml_config,
354
+ notion_integration=notion_integration,
355
+ slack_integration=slack_integration,
356
+ discord_integration=discord_integration,
357
+ github_integration=github_integration,
358
+ zapier_integration=zapier_integration,
359
+ )
360
+
361
+ tenant.additional_properties = d
362
+ return tenant
363
+
364
+ @property
365
+ def additional_keys(self) -> List[str]:
366
+ return list(self.additional_properties.keys())
367
+
368
+ def __getitem__(self, key: str) -> Any:
369
+ return self.additional_properties[key]
370
+
371
+ def __setitem__(self, key: str, value: Any) -> None:
372
+ self.additional_properties[key] = value
373
+
374
+ def __delitem__(self, key: str) -> None:
375
+ del self.additional_properties[key]
376
+
377
+ def __contains__(self, key: str) -> bool:
378
+ return key in self.additional_properties
@@ -0,0 +1,157 @@
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 ..types import UNSET, Unset
7
+
8
+ T = TypeVar("T", bound="TenantUpdate")
9
+
10
+
11
+ @_attrs_define
12
+ class TenantUpdate:
13
+ """
14
+ Attributes:
15
+ name (Union[Unset, str]):
16
+ timezone (Union[Unset, str]):
17
+ backlog_enabled (Union[Unset, bool]):
18
+ ai_assignment_enabled (Union[Unset, bool]):
19
+ email_integration_enabled (Union[Unset, bool]):
20
+ close_parent_on_close_all_subtasks (Union[Unset, bool]):
21
+ move_subtasks_on_move_parent (Union[Unset, bool]):
22
+ update_subtasks_status_on_update_parent_status (Union[Unset, bool]):
23
+ copy_parent_fields_on_create (Union[Unset, bool]):
24
+ update_blockee_dates_on_update_blocker_due_date (Union[Unset, bool]):
25
+ webhook_enabled (Union[Unset, bool]):
26
+ webhook_secret (Union[Unset, str]):
27
+ """
28
+
29
+ name: Union[Unset, str] = UNSET
30
+ timezone: Union[Unset, str] = UNSET
31
+ backlog_enabled: Union[Unset, bool] = UNSET
32
+ ai_assignment_enabled: Union[Unset, bool] = UNSET
33
+ email_integration_enabled: Union[Unset, bool] = UNSET
34
+ close_parent_on_close_all_subtasks: Union[Unset, bool] = UNSET
35
+ move_subtasks_on_move_parent: Union[Unset, bool] = UNSET
36
+ update_subtasks_status_on_update_parent_status: Union[Unset, bool] = UNSET
37
+ copy_parent_fields_on_create: Union[Unset, bool] = UNSET
38
+ update_blockee_dates_on_update_blocker_due_date: Union[Unset, bool] = UNSET
39
+ webhook_enabled: Union[Unset, bool] = UNSET
40
+ webhook_secret: Union[Unset, str] = UNSET
41
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
42
+
43
+ def to_dict(self) -> Dict[str, Any]:
44
+ name = self.name
45
+
46
+ timezone = self.timezone
47
+
48
+ backlog_enabled = self.backlog_enabled
49
+
50
+ ai_assignment_enabled = self.ai_assignment_enabled
51
+
52
+ email_integration_enabled = self.email_integration_enabled
53
+
54
+ close_parent_on_close_all_subtasks = self.close_parent_on_close_all_subtasks
55
+
56
+ move_subtasks_on_move_parent = self.move_subtasks_on_move_parent
57
+
58
+ update_subtasks_status_on_update_parent_status = self.update_subtasks_status_on_update_parent_status
59
+
60
+ copy_parent_fields_on_create = self.copy_parent_fields_on_create
61
+
62
+ update_blockee_dates_on_update_blocker_due_date = self.update_blockee_dates_on_update_blocker_due_date
63
+
64
+ webhook_enabled = self.webhook_enabled
65
+
66
+ webhook_secret = self.webhook_secret
67
+
68
+ field_dict: Dict[str, Any] = {}
69
+ field_dict.update(self.additional_properties)
70
+ field_dict.update({})
71
+ if name is not UNSET:
72
+ field_dict["name"] = name
73
+ if timezone is not UNSET:
74
+ field_dict["timezone"] = timezone
75
+ if backlog_enabled is not UNSET:
76
+ field_dict["backlogEnabled"] = backlog_enabled
77
+ if ai_assignment_enabled is not UNSET:
78
+ field_dict["aiAssignmentEnabled"] = ai_assignment_enabled
79
+ if email_integration_enabled is not UNSET:
80
+ field_dict["emailIntegrationEnabled"] = email_integration_enabled
81
+ if close_parent_on_close_all_subtasks is not UNSET:
82
+ field_dict["closeParentOnCloseAllSubtasks"] = close_parent_on_close_all_subtasks
83
+ if move_subtasks_on_move_parent is not UNSET:
84
+ field_dict["moveSubtasksOnMoveParent"] = move_subtasks_on_move_parent
85
+ if update_subtasks_status_on_update_parent_status is not UNSET:
86
+ field_dict["updateSubtasksStatusOnUpdateParentStatus"] = update_subtasks_status_on_update_parent_status
87
+ if copy_parent_fields_on_create is not UNSET:
88
+ field_dict["copyParentFieldsOnCreate"] = copy_parent_fields_on_create
89
+ if update_blockee_dates_on_update_blocker_due_date is not UNSET:
90
+ field_dict["updateBlockeeDatesOnUpdateBlockerDueDate"] = update_blockee_dates_on_update_blocker_due_date
91
+ if webhook_enabled is not UNSET:
92
+ field_dict["webhookEnabled"] = webhook_enabled
93
+ if webhook_secret is not UNSET:
94
+ field_dict["webhookSecret"] = webhook_secret
95
+
96
+ return field_dict
97
+
98
+ @classmethod
99
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
100
+ d = src_dict.copy()
101
+ name = d.pop("name", UNSET)
102
+
103
+ timezone = d.pop("timezone", UNSET)
104
+
105
+ backlog_enabled = d.pop("backlogEnabled", UNSET)
106
+
107
+ ai_assignment_enabled = d.pop("aiAssignmentEnabled", UNSET)
108
+
109
+ email_integration_enabled = d.pop("emailIntegrationEnabled", UNSET)
110
+
111
+ close_parent_on_close_all_subtasks = d.pop("closeParentOnCloseAllSubtasks", UNSET)
112
+
113
+ move_subtasks_on_move_parent = d.pop("moveSubtasksOnMoveParent", UNSET)
114
+
115
+ update_subtasks_status_on_update_parent_status = d.pop("updateSubtasksStatusOnUpdateParentStatus", UNSET)
116
+
117
+ copy_parent_fields_on_create = d.pop("copyParentFieldsOnCreate", UNSET)
118
+
119
+ update_blockee_dates_on_update_blocker_due_date = d.pop("updateBlockeeDatesOnUpdateBlockerDueDate", UNSET)
120
+
121
+ webhook_enabled = d.pop("webhookEnabled", UNSET)
122
+
123
+ webhook_secret = d.pop("webhookSecret", UNSET)
124
+
125
+ tenant_update = cls(
126
+ name=name,
127
+ timezone=timezone,
128
+ backlog_enabled=backlog_enabled,
129
+ ai_assignment_enabled=ai_assignment_enabled,
130
+ email_integration_enabled=email_integration_enabled,
131
+ close_parent_on_close_all_subtasks=close_parent_on_close_all_subtasks,
132
+ move_subtasks_on_move_parent=move_subtasks_on_move_parent,
133
+ update_subtasks_status_on_update_parent_status=update_subtasks_status_on_update_parent_status,
134
+ copy_parent_fields_on_create=copy_parent_fields_on_create,
135
+ update_blockee_dates_on_update_blocker_due_date=update_blockee_dates_on_update_blocker_due_date,
136
+ webhook_enabled=webhook_enabled,
137
+ webhook_secret=webhook_secret,
138
+ )
139
+
140
+ tenant_update.additional_properties = d
141
+ return tenant_update
142
+
143
+ @property
144
+ def additional_keys(self) -> List[str]:
145
+ return list(self.additional_properties.keys())
146
+
147
+ def __getitem__(self, key: str) -> Any:
148
+ return self.additional_properties[key]
149
+
150
+ def __setitem__(self, key: str, value: Any) -> None:
151
+ self.additional_properties[key] = value
152
+
153
+ def __delitem__(self, key: str) -> None:
154
+ del self.additional_properties[key]
155
+
156
+ def __contains__(self, key: str) -> bool:
157
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class Theme(str, Enum):
5
+ DARK = "Dark"
6
+ LIGHT = "Light"
7
+ SYSTEM_DEFAULT = "System Default"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,155 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, List, Type, TypeVar
2
+
3
+ from attrs import define as _attrs_define
4
+ from attrs import field as _attrs_field
5
+
6
+ from ..models.transaction_kind import TransactionKind
7
+
8
+ if TYPE_CHECKING:
9
+ from ..models.operation import Operation
10
+
11
+
12
+ T = TypeVar("T", bound="Transaction")
13
+
14
+
15
+ @_attrs_define
16
+ class Transaction:
17
+ """
18
+ Attributes:
19
+ duid (str):
20
+ kind (TransactionKind): * `brainstorm_create` - BRAINSTORM_CREATE
21
+ * `brainstorm_delete` - BRAINSTORM_DELETE
22
+ * `brainstorm_update` - BRAINSTORM_UPDATE
23
+ * `comment_create` - COMMENT_CREATE
24
+ * `comment_update` - COMMENT_UPDATE
25
+ * `comment_delete` - COMMENT_DELETE
26
+ * `comment_reaction_create` - COMMENT_REACTION_CREATE
27
+ * `comment_reaction_delete` - COMMENT_REACTION_DELETE
28
+ * `sprint_rollover` - SPRINT_ROLLOVER
29
+ * `dartboard_create` - DARTBOARD_CREATE
30
+ * `dartboard_delete` - DARTBOARD_DELETE
31
+ * `dartboard_update` - DARTBOARD_UPDATE
32
+ * `dashboard_create` - DASHBOARD_CREATE
33
+ * `dashboard_delete` - DASHBOARD_DELETE
34
+ * `dashboard_update` - DASHBOARD_UPDATE
35
+ * `doc_create` - DOC_CREATE
36
+ * `doc_delete` - DOC_DELETE
37
+ * `doc_update` - DOC_UPDATE
38
+ * `event_create` - EVENT_CREATE
39
+ * `folder_create` - FOLDER_CREATE
40
+ * `folder_delete` - FOLDER_DELETE
41
+ * `folder_update` - FOLDER_UPDATE
42
+ * `form_create` - FORM_CREATE
43
+ * `form_delete` - FORM_DELETE
44
+ * `form_update` - FORM_UPDATE
45
+ * `layout_create` - LAYOUT_CREATE
46
+ * `layout_delete` - LAYOUT_DELETE
47
+ * `layout_update` - LAYOUT_UPDATE
48
+ * `notification_update` - NOTIFICATION_UPDATE
49
+ * `option_create` - OPTION_CREATE
50
+ * `option_delete` - OPTION_DELETE
51
+ * `option_update` - OPTION_UPDATE
52
+ * `property_create` - PROPERTY_CREATE
53
+ * `property_update` - PROPERTY_UPDATE
54
+ * `property_delete` - PROPERTY_DELETE
55
+ * `relationship_create` - RELATIONSHIP_CREATE
56
+ * `relationship_update` - RELATIONSHIP_UPDATE
57
+ * `relationship_delete` - RELATIONSHIP_DELETE
58
+ * `space_create` - SPACE_CREATE
59
+ * `space_update_perms` - SPACE_UPDATE_PERMS
60
+ * `space_update_other` - SPACE_UPDATE_OTHER
61
+ * `space_delete` - SPACE_DELETE
62
+ * `status_create` - STATUS_CREATE
63
+ * `status_delete` - STATUS_DELETE
64
+ * `status_update` - STATUS_UPDATE
65
+ * `task_complete` - TASK_COMPLETE
66
+ * `task_create` - TASK_CREATE
67
+ * `task_delete` - TASK_DELETE
68
+ * `task_rename` - TASK_RENAME
69
+ * `task_update` - TASK_UPDATE
70
+ * `task_doc_relationship_create` - TASK_DOC_RELATIONSHIP_CREATE
71
+ * `task_doc_relationship_delete` - TASK_DOC_RELATIONSHIP_DELETE
72
+ * `task_kind_create` - TASK_KIND_CREATE
73
+ * `task_kind_delete` - TASK_KIND_DELETE
74
+ * `task_kind_update` - TASK_KIND_UPDATE
75
+ * `tenant_update` - TENANT_UPDATE
76
+ * `user_dartboard_layout_create` - USER_DARTBOARD_LAYOUT_CREATE
77
+ * `user_dartboard_layout_delete` - USER_DARTBOARD_LAYOUT_DELETE
78
+ * `user_dartboard_layout_update` - USER_DARTBOARD_LAYOUT_UPDATE
79
+ * `user_update` - USER_UPDATE
80
+ * `view_create` - VIEW_CREATE
81
+ * `view_delete` - VIEW_DELETE
82
+ * `view_update` - VIEW_UPDATE
83
+ * `webhook_create` - WEBHOOK_CREATE
84
+ * `webhook_delete` - WEBHOOK_DELETE
85
+ * `webhook_update` - WEBHOOK_UPDATE
86
+ operations (List['Operation']):
87
+ """
88
+
89
+ duid: str
90
+ kind: TransactionKind
91
+ operations: List["Operation"]
92
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
93
+
94
+ def to_dict(self) -> Dict[str, Any]:
95
+ duid = self.duid
96
+
97
+ kind = self.kind.value
98
+
99
+ operations = []
100
+ for operations_item_data in self.operations:
101
+ operations_item = operations_item_data.to_dict()
102
+ operations.append(operations_item)
103
+
104
+ field_dict: Dict[str, Any] = {}
105
+ field_dict.update(self.additional_properties)
106
+ field_dict.update(
107
+ {
108
+ "duid": duid,
109
+ "kind": kind,
110
+ "operations": operations,
111
+ }
112
+ )
113
+
114
+ return field_dict
115
+
116
+ @classmethod
117
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
118
+ from ..models.operation import Operation
119
+
120
+ d = src_dict.copy()
121
+ duid = d.pop("duid")
122
+
123
+ kind = TransactionKind(d.pop("kind"))
124
+
125
+ operations = []
126
+ _operations = d.pop("operations")
127
+ for operations_item_data in _operations:
128
+ operations_item = Operation.from_dict(operations_item_data)
129
+
130
+ operations.append(operations_item)
131
+
132
+ transaction = cls(
133
+ duid=duid,
134
+ kind=kind,
135
+ operations=operations,
136
+ )
137
+
138
+ transaction.additional_properties = d
139
+ return transaction
140
+
141
+ @property
142
+ def additional_keys(self) -> List[str]:
143
+ return list(self.additional_properties.keys())
144
+
145
+ def __getitem__(self, key: str) -> Any:
146
+ return self.additional_properties[key]
147
+
148
+ def __setitem__(self, key: str, value: Any) -> None:
149
+ self.additional_properties[key] = value
150
+
151
+ def __delitem__(self, key: str) -> None:
152
+ del self.additional_properties[key]
153
+
154
+ def __contains__(self, key: str) -> bool:
155
+ return key in self.additional_properties