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,142 @@
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.icon_kind import IconKind
7
+ from ..types import UNSET, Unset
8
+
9
+ T = TypeVar("T", bound="FormUpdate")
10
+
11
+
12
+ @_attrs_define
13
+ class FormUpdate:
14
+ """
15
+ Attributes:
16
+ duid (str):
17
+ hidden (Union[Unset, bool]):
18
+ public (Union[Unset, bool]):
19
+ order (Union[Unset, str]):
20
+ title (Union[Unset, str]):
21
+ description (Union[Unset, str]):
22
+ icon_kind (Union[Unset, IconKind]): * `None` - NONE
23
+ * `Icon` - ICON
24
+ * `Emoji` - EMOJI
25
+ icon_name_or_emoji (Union[Unset, str]):
26
+ color_hex (Union[Unset, str]):
27
+ """
28
+
29
+ duid: str
30
+ hidden: Union[Unset, bool] = UNSET
31
+ public: Union[Unset, bool] = UNSET
32
+ order: Union[Unset, str] = UNSET
33
+ title: Union[Unset, str] = UNSET
34
+ description: Union[Unset, str] = UNSET
35
+ icon_kind: Union[Unset, IconKind] = UNSET
36
+ icon_name_or_emoji: Union[Unset, str] = UNSET
37
+ color_hex: 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
+ hidden = self.hidden
44
+
45
+ public = self.public
46
+
47
+ order = self.order
48
+
49
+ title = self.title
50
+
51
+ description = self.description
52
+
53
+ icon_kind: Union[Unset, str] = UNSET
54
+ if not isinstance(self.icon_kind, Unset):
55
+ icon_kind = self.icon_kind.value
56
+
57
+ icon_name_or_emoji = self.icon_name_or_emoji
58
+
59
+ color_hex = self.color_hex
60
+
61
+ field_dict: Dict[str, Any] = {}
62
+ field_dict.update(self.additional_properties)
63
+ field_dict.update(
64
+ {
65
+ "duid": duid,
66
+ }
67
+ )
68
+ if hidden is not UNSET:
69
+ field_dict["hidden"] = hidden
70
+ if public is not UNSET:
71
+ field_dict["public"] = public
72
+ if order is not UNSET:
73
+ field_dict["order"] = order
74
+ if title is not UNSET:
75
+ field_dict["title"] = title
76
+ if description is not UNSET:
77
+ field_dict["description"] = description
78
+ if icon_kind is not UNSET:
79
+ field_dict["iconKind"] = icon_kind
80
+ if icon_name_or_emoji is not UNSET:
81
+ field_dict["iconNameOrEmoji"] = icon_name_or_emoji
82
+ if color_hex is not UNSET:
83
+ field_dict["colorHex"] = color_hex
84
+
85
+ return field_dict
86
+
87
+ @classmethod
88
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
89
+ d = src_dict.copy()
90
+ duid = d.pop("duid")
91
+
92
+ hidden = d.pop("hidden", UNSET)
93
+
94
+ public = d.pop("public", UNSET)
95
+
96
+ order = d.pop("order", UNSET)
97
+
98
+ title = d.pop("title", UNSET)
99
+
100
+ description = d.pop("description", UNSET)
101
+
102
+ _icon_kind = d.pop("iconKind", UNSET)
103
+ icon_kind: Union[Unset, IconKind]
104
+ if isinstance(_icon_kind, Unset):
105
+ icon_kind = UNSET
106
+ else:
107
+ icon_kind = IconKind(_icon_kind)
108
+
109
+ icon_name_or_emoji = d.pop("iconNameOrEmoji", UNSET)
110
+
111
+ color_hex = d.pop("colorHex", UNSET)
112
+
113
+ form_update = cls(
114
+ duid=duid,
115
+ hidden=hidden,
116
+ public=public,
117
+ order=order,
118
+ title=title,
119
+ description=description,
120
+ icon_kind=icon_kind,
121
+ icon_name_or_emoji=icon_name_or_emoji,
122
+ color_hex=color_hex,
123
+ )
124
+
125
+ form_update.additional_properties = d
126
+ return form_update
127
+
128
+ @property
129
+ def additional_keys(self) -> List[str]:
130
+ return list(self.additional_properties.keys())
131
+
132
+ def __getitem__(self, key: str) -> Any:
133
+ return self.additional_properties[key]
134
+
135
+ def __setitem__(self, key: str, value: Any) -> None:
136
+ self.additional_properties[key] = value
137
+
138
+ def __delitem__(self, key: str) -> None:
139
+ del self.additional_properties[key]
140
+
141
+ def __contains__(self, key: str) -> bool:
142
+ return key in self.additional_properties
@@ -0,0 +1,163 @@
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.github_integration_tenant_extension_status import GithubIntegrationTenantExtensionStatus
7
+
8
+ T = TypeVar("T", bound="GithubIntegration")
9
+
10
+
11
+ @_attrs_define
12
+ class GithubIntegration:
13
+ """
14
+ Attributes:
15
+ status (GithubIntegrationTenantExtensionStatus): * `Disabled` - DISABLED
16
+ * `Pending` - PENDING
17
+ * `Suspended` - SUSPENDED
18
+ * `Enabled` - ENABLED
19
+ installation_link (Union[None, str]):
20
+ linkback_enabled (bool):
21
+ auto_assign (bool):
22
+ status_on_branch_link_copy_duid (Union[None, str]):
23
+ status_on_branch_create_duid (Union[None, str]):
24
+ status_on_pr_draft_duid (Union[None, str]):
25
+ status_on_pr_ready_duid (Union[None, str]):
26
+ status_on_pr_merge_duid (Union[None, str]):
27
+ """
28
+
29
+ status: GithubIntegrationTenantExtensionStatus
30
+ installation_link: Union[None, str]
31
+ linkback_enabled: bool
32
+ auto_assign: bool
33
+ status_on_branch_link_copy_duid: Union[None, str]
34
+ status_on_branch_create_duid: Union[None, str]
35
+ status_on_pr_draft_duid: Union[None, str]
36
+ status_on_pr_ready_duid: Union[None, str]
37
+ status_on_pr_merge_duid: Union[None, str]
38
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
39
+
40
+ def to_dict(self) -> Dict[str, Any]:
41
+ status = self.status.value
42
+
43
+ installation_link: Union[None, str]
44
+ installation_link = self.installation_link
45
+
46
+ linkback_enabled = self.linkback_enabled
47
+
48
+ auto_assign = self.auto_assign
49
+
50
+ status_on_branch_link_copy_duid: Union[None, str]
51
+ status_on_branch_link_copy_duid = self.status_on_branch_link_copy_duid
52
+
53
+ status_on_branch_create_duid: Union[None, str]
54
+ status_on_branch_create_duid = self.status_on_branch_create_duid
55
+
56
+ status_on_pr_draft_duid: Union[None, str]
57
+ status_on_pr_draft_duid = self.status_on_pr_draft_duid
58
+
59
+ status_on_pr_ready_duid: Union[None, str]
60
+ status_on_pr_ready_duid = self.status_on_pr_ready_duid
61
+
62
+ status_on_pr_merge_duid: Union[None, str]
63
+ status_on_pr_merge_duid = self.status_on_pr_merge_duid
64
+
65
+ field_dict: Dict[str, Any] = {}
66
+ field_dict.update(self.additional_properties)
67
+ field_dict.update(
68
+ {
69
+ "status": status,
70
+ "installationLink": installation_link,
71
+ "linkbackEnabled": linkback_enabled,
72
+ "autoAssign": auto_assign,
73
+ "statusOnBranchLinkCopyDuid": status_on_branch_link_copy_duid,
74
+ "statusOnBranchCreateDuid": status_on_branch_create_duid,
75
+ "statusOnPrDraftDuid": status_on_pr_draft_duid,
76
+ "statusOnPrReadyDuid": status_on_pr_ready_duid,
77
+ "statusOnPrMergeDuid": status_on_pr_merge_duid,
78
+ }
79
+ )
80
+
81
+ return field_dict
82
+
83
+ @classmethod
84
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
85
+ d = src_dict.copy()
86
+ status = GithubIntegrationTenantExtensionStatus(d.pop("status"))
87
+
88
+ def _parse_installation_link(data: object) -> Union[None, str]:
89
+ if data is None:
90
+ return data
91
+ return cast(Union[None, str], data)
92
+
93
+ installation_link = _parse_installation_link(d.pop("installationLink"))
94
+
95
+ linkback_enabled = d.pop("linkbackEnabled")
96
+
97
+ auto_assign = d.pop("autoAssign")
98
+
99
+ def _parse_status_on_branch_link_copy_duid(data: object) -> Union[None, str]:
100
+ if data is None:
101
+ return data
102
+ return cast(Union[None, str], data)
103
+
104
+ status_on_branch_link_copy_duid = _parse_status_on_branch_link_copy_duid(d.pop("statusOnBranchLinkCopyDuid"))
105
+
106
+ def _parse_status_on_branch_create_duid(data: object) -> Union[None, str]:
107
+ if data is None:
108
+ return data
109
+ return cast(Union[None, str], data)
110
+
111
+ status_on_branch_create_duid = _parse_status_on_branch_create_duid(d.pop("statusOnBranchCreateDuid"))
112
+
113
+ def _parse_status_on_pr_draft_duid(data: object) -> Union[None, str]:
114
+ if data is None:
115
+ return data
116
+ return cast(Union[None, str], data)
117
+
118
+ status_on_pr_draft_duid = _parse_status_on_pr_draft_duid(d.pop("statusOnPrDraftDuid"))
119
+
120
+ def _parse_status_on_pr_ready_duid(data: object) -> Union[None, str]:
121
+ if data is None:
122
+ return data
123
+ return cast(Union[None, str], data)
124
+
125
+ status_on_pr_ready_duid = _parse_status_on_pr_ready_duid(d.pop("statusOnPrReadyDuid"))
126
+
127
+ def _parse_status_on_pr_merge_duid(data: object) -> Union[None, str]:
128
+ if data is None:
129
+ return data
130
+ return cast(Union[None, str], data)
131
+
132
+ status_on_pr_merge_duid = _parse_status_on_pr_merge_duid(d.pop("statusOnPrMergeDuid"))
133
+
134
+ github_integration = cls(
135
+ status=status,
136
+ installation_link=installation_link,
137
+ linkback_enabled=linkback_enabled,
138
+ auto_assign=auto_assign,
139
+ status_on_branch_link_copy_duid=status_on_branch_link_copy_duid,
140
+ status_on_branch_create_duid=status_on_branch_create_duid,
141
+ status_on_pr_draft_duid=status_on_pr_draft_duid,
142
+ status_on_pr_ready_duid=status_on_pr_ready_duid,
143
+ status_on_pr_merge_duid=status_on_pr_merge_duid,
144
+ )
145
+
146
+ github_integration.additional_properties = d
147
+ return github_integration
148
+
149
+ @property
150
+ def additional_keys(self) -> List[str]:
151
+ return list(self.additional_properties.keys())
152
+
153
+ def __getitem__(self, key: str) -> Any:
154
+ return self.additional_properties[key]
155
+
156
+ def __setitem__(self, key: str, value: Any) -> None:
157
+ self.additional_properties[key] = value
158
+
159
+ def __delitem__(self, key: str) -> None:
160
+ del self.additional_properties[key]
161
+
162
+ def __contains__(self, key: str) -> bool:
163
+ return key in self.additional_properties
@@ -0,0 +1,11 @@
1
+ from enum import Enum
2
+
3
+
4
+ class GithubIntegrationTenantExtensionStatus(str, Enum):
5
+ DISABLED = "Disabled"
6
+ ENABLED = "Enabled"
7
+ PENDING = "Pending"
8
+ SUSPENDED = "Suspended"
9
+
10
+ def __str__(self) -> str:
11
+ return str(self.value)
@@ -0,0 +1,94 @@
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
+ T = TypeVar("T", bound="GoogleData")
7
+
8
+
9
+ @_attrs_define
10
+ class GoogleData:
11
+ """
12
+ Attributes:
13
+ name (str):
14
+ email (str):
15
+ picture_url (Union[None, str]):
16
+ organization_domain (Union[None, str]):
17
+ """
18
+
19
+ name: str
20
+ email: str
21
+ picture_url: Union[None, str]
22
+ organization_domain: Union[None, str]
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ name = self.name
27
+
28
+ email = self.email
29
+
30
+ picture_url: Union[None, str]
31
+ picture_url = self.picture_url
32
+
33
+ organization_domain: Union[None, str]
34
+ organization_domain = self.organization_domain
35
+
36
+ field_dict: Dict[str, Any] = {}
37
+ field_dict.update(self.additional_properties)
38
+ field_dict.update(
39
+ {
40
+ "name": name,
41
+ "email": email,
42
+ "pictureUrl": picture_url,
43
+ "organizationDomain": organization_domain,
44
+ }
45
+ )
46
+
47
+ return field_dict
48
+
49
+ @classmethod
50
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
51
+ d = src_dict.copy()
52
+ name = d.pop("name")
53
+
54
+ email = d.pop("email")
55
+
56
+ def _parse_picture_url(data: object) -> Union[None, str]:
57
+ if data is None:
58
+ return data
59
+ return cast(Union[None, str], data)
60
+
61
+ picture_url = _parse_picture_url(d.pop("pictureUrl"))
62
+
63
+ def _parse_organization_domain(data: object) -> Union[None, str]:
64
+ if data is None:
65
+ return data
66
+ return cast(Union[None, str], data)
67
+
68
+ organization_domain = _parse_organization_domain(d.pop("organizationDomain"))
69
+
70
+ google_data = cls(
71
+ name=name,
72
+ email=email,
73
+ picture_url=picture_url,
74
+ organization_domain=organization_domain,
75
+ )
76
+
77
+ google_data.additional_properties = d
78
+ return google_data
79
+
80
+ @property
81
+ def additional_keys(self) -> List[str]:
82
+ return list(self.additional_properties.keys())
83
+
84
+ def __getitem__(self, key: str) -> Any:
85
+ return self.additional_properties[key]
86
+
87
+ def __setitem__(self, key: str, value: Any) -> None:
88
+ self.additional_properties[key] = value
89
+
90
+ def __delitem__(self, key: str) -> None:
91
+ del self.additional_properties[key]
92
+
93
+ def __contains__(self, key: str) -> bool:
94
+ return key in self.additional_properties
@@ -0,0 +1,10 @@
1
+ from enum import Enum
2
+
3
+
4
+ class IconKind(str, Enum):
5
+ EMOJI = "Emoji"
6
+ ICON = "Icon"
7
+ NONE = "None"
8
+
9
+ def __str__(self) -> str:
10
+ return str(self.value)
@@ -0,0 +1,167 @@
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.layout_kind import LayoutKind
9
+ from ..models.summary_statistic_kind import SummaryStatisticKind
10
+ from ..types import UNSET, Unset
11
+
12
+ if TYPE_CHECKING:
13
+ from ..models.filter_group import FilterGroup
14
+ from ..models.layout_kind_config_map import LayoutKindConfigMap
15
+ from ..models.sort import Sort
16
+
17
+
18
+ T = TypeVar("T", bound="Layout")
19
+
20
+
21
+ @_attrs_define
22
+ class Layout:
23
+ """
24
+ Attributes:
25
+ duid (str):
26
+ created_at (datetime.datetime):
27
+ updated_at (datetime.datetime):
28
+ kind (LayoutKind): * `list` - LIST
29
+ * `board` - BOARD
30
+ * `calendar` - CALENDAR
31
+ * `roadmap` - ROADMAP
32
+ kind_config_map (LayoutKindConfigMap):
33
+ filter_group (FilterGroup):
34
+ sorts (List['Sort']):
35
+ summary_statistic_kind (SummaryStatisticKind): * `None` - NONE
36
+ * `TotalCount` - TOTAL_COUNT
37
+ * `IncompleteCount` - INCOMPLETE_COUNT
38
+ * `CompletedPercent` - COMPLETED_PERCENT
39
+ * `TotalCountPoints` - TOTAL_COUNT_POINTS
40
+ * `IncompleteCountPoints` - INCOMPLETE_COUNT_POINTS
41
+ * `CompletedPercentPoints` - COMPLETED_PERCENT_POINTS
42
+ updated_by_client_duid (Union[None, Unset, str]):
43
+ """
44
+
45
+ duid: str
46
+ created_at: datetime.datetime
47
+ updated_at: datetime.datetime
48
+ kind: LayoutKind
49
+ kind_config_map: "LayoutKindConfigMap"
50
+ filter_group: "FilterGroup"
51
+ sorts: List["Sort"]
52
+ summary_statistic_kind: SummaryStatisticKind
53
+ updated_by_client_duid: Union[None, Unset, str] = UNSET
54
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
55
+
56
+ def to_dict(self) -> Dict[str, Any]:
57
+ duid = self.duid
58
+
59
+ created_at = self.created_at.isoformat()
60
+
61
+ updated_at = self.updated_at.isoformat()
62
+
63
+ kind = self.kind.value
64
+
65
+ kind_config_map = self.kind_config_map.to_dict()
66
+
67
+ filter_group = self.filter_group.to_dict()
68
+
69
+ sorts = []
70
+ for sorts_item_data in self.sorts:
71
+ sorts_item = sorts_item_data.to_dict()
72
+ sorts.append(sorts_item)
73
+
74
+ summary_statistic_kind = self.summary_statistic_kind.value
75
+
76
+ updated_by_client_duid: Union[None, Unset, str]
77
+ if isinstance(self.updated_by_client_duid, Unset):
78
+ updated_by_client_duid = UNSET
79
+ else:
80
+ updated_by_client_duid = self.updated_by_client_duid
81
+
82
+ field_dict: Dict[str, Any] = {}
83
+ field_dict.update(self.additional_properties)
84
+ field_dict.update(
85
+ {
86
+ "duid": duid,
87
+ "createdAt": created_at,
88
+ "updatedAt": updated_at,
89
+ "kind": kind,
90
+ "kindConfigMap": kind_config_map,
91
+ "filterGroup": filter_group,
92
+ "sorts": sorts,
93
+ "summaryStatisticKind": summary_statistic_kind,
94
+ }
95
+ )
96
+ if updated_by_client_duid is not UNSET:
97
+ field_dict["updatedByClientDuid"] = updated_by_client_duid
98
+
99
+ return field_dict
100
+
101
+ @classmethod
102
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
103
+ from ..models.filter_group import FilterGroup
104
+ from ..models.layout_kind_config_map import LayoutKindConfigMap
105
+ from ..models.sort import Sort
106
+
107
+ d = src_dict.copy()
108
+ duid = d.pop("duid")
109
+
110
+ created_at = isoparse(d.pop("createdAt"))
111
+
112
+ updated_at = isoparse(d.pop("updatedAt"))
113
+
114
+ kind = LayoutKind(d.pop("kind"))
115
+
116
+ kind_config_map = LayoutKindConfigMap.from_dict(d.pop("kindConfigMap"))
117
+
118
+ filter_group = FilterGroup.from_dict(d.pop("filterGroup"))
119
+
120
+ sorts = []
121
+ _sorts = d.pop("sorts")
122
+ for sorts_item_data in _sorts:
123
+ sorts_item = Sort.from_dict(sorts_item_data)
124
+
125
+ sorts.append(sorts_item)
126
+
127
+ summary_statistic_kind = SummaryStatisticKind(d.pop("summaryStatisticKind"))
128
+
129
+ def _parse_updated_by_client_duid(data: object) -> Union[None, Unset, str]:
130
+ if data is None:
131
+ return data
132
+ if isinstance(data, Unset):
133
+ return data
134
+ return cast(Union[None, Unset, str], data)
135
+
136
+ updated_by_client_duid = _parse_updated_by_client_duid(d.pop("updatedByClientDuid", UNSET))
137
+
138
+ layout = cls(
139
+ duid=duid,
140
+ created_at=created_at,
141
+ updated_at=updated_at,
142
+ kind=kind,
143
+ kind_config_map=kind_config_map,
144
+ filter_group=filter_group,
145
+ sorts=sorts,
146
+ summary_statistic_kind=summary_statistic_kind,
147
+ updated_by_client_duid=updated_by_client_duid,
148
+ )
149
+
150
+ layout.additional_properties = d
151
+ return layout
152
+
153
+ @property
154
+ def additional_keys(self) -> List[str]:
155
+ return list(self.additional_properties.keys())
156
+
157
+ def __getitem__(self, key: str) -> Any:
158
+ return self.additional_properties[key]
159
+
160
+ def __setitem__(self, key: str, value: Any) -> None:
161
+ self.additional_properties[key] = value
162
+
163
+ def __delitem__(self, key: str) -> None:
164
+ del self.additional_properties[key]
165
+
166
+ def __contains__(self, key: str) -> bool:
167
+ return key in self.additional_properties
@@ -0,0 +1,70 @@
1
+ from typing import 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.subtask_display_mode import SubtaskDisplayMode
7
+
8
+ T = TypeVar("T", bound="LayoutConfig")
9
+
10
+
11
+ @_attrs_define
12
+ class LayoutConfig:
13
+ """
14
+ Attributes:
15
+ subtask_display_mode (SubtaskDisplayMode): * `1` - INDENTED
16
+ * `2` - COLLAPSED
17
+ * `3` - FLAT
18
+ show_absentees (bool):
19
+ """
20
+
21
+ subtask_display_mode: SubtaskDisplayMode
22
+ show_absentees: bool
23
+ additional_properties: Dict[str, Any] = _attrs_field(init=False, factory=dict)
24
+
25
+ def to_dict(self) -> Dict[str, Any]:
26
+ subtask_display_mode = self.subtask_display_mode.value
27
+
28
+ show_absentees = self.show_absentees
29
+
30
+ field_dict: Dict[str, Any] = {}
31
+ field_dict.update(self.additional_properties)
32
+ field_dict.update(
33
+ {
34
+ "subtaskDisplayMode": subtask_display_mode,
35
+ "showAbsentees": show_absentees,
36
+ }
37
+ )
38
+
39
+ return field_dict
40
+
41
+ @classmethod
42
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
43
+ d = src_dict.copy()
44
+ subtask_display_mode = SubtaskDisplayMode(d.pop("subtaskDisplayMode"))
45
+
46
+ show_absentees = d.pop("showAbsentees")
47
+
48
+ layout_config = cls(
49
+ subtask_display_mode=subtask_display_mode,
50
+ show_absentees=show_absentees,
51
+ )
52
+
53
+ layout_config.additional_properties = d
54
+ return layout_config
55
+
56
+ @property
57
+ def additional_keys(self) -> List[str]:
58
+ return list(self.additional_properties.keys())
59
+
60
+ def __getitem__(self, key: str) -> Any:
61
+ return self.additional_properties[key]
62
+
63
+ def __setitem__(self, key: str, value: Any) -> None:
64
+ self.additional_properties[key] = value
65
+
66
+ def __delitem__(self, key: str) -> None:
67
+ del self.additional_properties[key]
68
+
69
+ def __contains__(self, key: str) -> bool:
70
+ return key in self.additional_properties