taskadence 0.1.0__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.
Files changed (533) hide show
  1. taskadence/__init__.py +100 -0
  2. taskadence/_brand.py +87 -0
  3. taskadence/_client.py +144 -0
  4. taskadence/_core.py +563 -0
  5. taskadence/_generated/__init__.py +11 -0
  6. taskadence/_generated/api/__init__.py +3 -0
  7. taskadence/_generated/api/audit/__init__.py +3 -0
  8. taskadence/_generated/api/audit/audit_export.py +407 -0
  9. taskadence/_generated/api/audit/audit_export_json.py +422 -0
  10. taskadence/_generated/api/audit/audit_list.py +441 -0
  11. taskadence/_generated/api/availability/__init__.py +3 -0
  12. taskadence/_generated/api/availability/availability_create.py +242 -0
  13. taskadence/_generated/api/availability/availability_delete.py +227 -0
  14. taskadence/_generated/api/availability/availability_range.py +293 -0
  15. taskadence/_generated/api/availability/availability_update.py +260 -0
  16. taskadence/_generated/api/connected_apps/__init__.py +3 -0
  17. taskadence/_generated/api/connected_apps/connected_apps_delete.py +213 -0
  18. taskadence/_generated/api/connected_apps/connected_apps_list.py +304 -0
  19. taskadence/_generated/api/designations/__init__.py +3 -0
  20. taskadence/_generated/api/designations/designations_create.py +217 -0
  21. taskadence/_generated/api/designations/designations_delete.py +252 -0
  22. taskadence/_generated/api/designations/designations_list.py +433 -0
  23. taskadence/_generated/api/designations/designations_read.py +261 -0
  24. taskadence/_generated/api/designations/designations_replace.py +276 -0
  25. taskadence/_generated/api/designations/designations_set_visibility.py +254 -0
  26. taskadence/_generated/api/designations/designations_update.py +272 -0
  27. taskadence/_generated/api/goals/__init__.py +3 -0
  28. taskadence/_generated/api/goals/goals_create.py +246 -0
  29. taskadence/_generated/api/goals/goals_delete.py +252 -0
  30. taskadence/_generated/api/goals/goals_file_tasks.py +256 -0
  31. taskadence/_generated/api/goals/goals_list.py +338 -0
  32. taskadence/_generated/api/goals/goals_move.py +252 -0
  33. taskadence/_generated/api/goals/goals_org.py +249 -0
  34. taskadence/_generated/api/goals/goals_reorder.py +238 -0
  35. taskadence/_generated/api/goals/goals_replace.py +260 -0
  36. taskadence/_generated/api/goals/goals_unfile_task.py +241 -0
  37. taskadence/_generated/api/goals/goals_update.py +256 -0
  38. taskadence/_generated/api/health/__init__.py +3 -0
  39. taskadence/_generated/api/health/health_read.py +219 -0
  40. taskadence/_generated/api/mcp/__init__.py +3 -0
  41. taskadence/_generated/api/mcp/mcp_clients.py +237 -0
  42. taskadence/_generated/api/me/__init__.py +3 -0
  43. taskadence/_generated/api/me/me_read.py +243 -0
  44. taskadence/_generated/api/milestones/__init__.py +3 -0
  45. taskadence/_generated/api/milestones/milestones_create.py +252 -0
  46. taskadence/_generated/api/milestones/milestones_delete.py +254 -0
  47. taskadence/_generated/api/milestones/milestones_file_tasks.py +256 -0
  48. taskadence/_generated/api/milestones/milestones_list.py +338 -0
  49. taskadence/_generated/api/milestones/milestones_list_org.py +374 -0
  50. taskadence/_generated/api/milestones/milestones_move.py +256 -0
  51. taskadence/_generated/api/milestones/milestones_reorder.py +238 -0
  52. taskadence/_generated/api/milestones/milestones_replace.py +314 -0
  53. taskadence/_generated/api/milestones/milestones_unfile_task.py +245 -0
  54. taskadence/_generated/api/milestones/milestones_update.py +302 -0
  55. taskadence/_generated/api/oauth_clients/__init__.py +3 -0
  56. taskadence/_generated/api/oauth_clients/oauth_clients_create.py +223 -0
  57. taskadence/_generated/api/oauth_clients/oauth_clients_delete.py +221 -0
  58. taskadence/_generated/api/oauth_clients/oauth_clients_list.py +327 -0
  59. taskadence/_generated/api/oauth_clients/oauth_clients_read.py +236 -0
  60. taskadence/_generated/api/oauth_clients/oauth_clients_rotate_secret.py +213 -0
  61. taskadence/_generated/api/oauth_clients/oauth_clients_update.py +234 -0
  62. taskadence/_generated/api/organization_invites/__init__.py +3 -0
  63. taskadence/_generated/api/organization_invites/organization_invites_accept.py +213 -0
  64. taskadence/_generated/api/organization_invites/organization_invites_create.py +219 -0
  65. taskadence/_generated/api/organization_invites/organization_invites_delete.py +213 -0
  66. taskadence/_generated/api/organization_invites/organization_invites_list.py +383 -0
  67. taskadence/_generated/api/organization_invites/organization_invites_mine.py +332 -0
  68. taskadence/_generated/api/organization_invites/organization_invites_reject.py +213 -0
  69. taskadence/_generated/api/organization_invites/organization_invites_update.py +234 -0
  70. taskadence/_generated/api/organization_members/__init__.py +3 -0
  71. taskadence/_generated/api/organization_members/organization_members_delete.py +246 -0
  72. taskadence/_generated/api/organization_members/organization_members_list.py +395 -0
  73. taskadence/_generated/api/organization_members/organization_members_read.py +250 -0
  74. taskadence/_generated/api/organization_members/organization_members_replace.py +272 -0
  75. taskadence/_generated/api/organization_members/organization_members_update.py +268 -0
  76. taskadence/_generated/api/organizations/__init__.py +3 -0
  77. taskadence/_generated/api/organizations/organizations_access_review.py +244 -0
  78. taskadence/_generated/api/organizations/organizations_list.py +304 -0
  79. taskadence/_generated/api/organizations/organizations_read.py +236 -0
  80. taskadence/_generated/api/organizations/organizations_settings.py +236 -0
  81. taskadence/_generated/api/organizations/organizations_storage.py +244 -0
  82. taskadence/_generated/api/organizations/organizations_update_settings.py +262 -0
  83. taskadence/_generated/api/project_members/__init__.py +3 -0
  84. taskadence/_generated/api/project_members/project_members_create.py +219 -0
  85. taskadence/_generated/api/project_members/project_members_delete.py +246 -0
  86. taskadence/_generated/api/project_members/project_members_list.py +364 -0
  87. taskadence/_generated/api/project_members/project_members_read.py +250 -0
  88. taskadence/_generated/api/project_members/project_members_replace.py +276 -0
  89. taskadence/_generated/api/project_members/project_members_update.py +272 -0
  90. taskadence/_generated/api/project_resources/__init__.py +3 -0
  91. taskadence/_generated/api/project_resources/project_resources_create.py +239 -0
  92. taskadence/_generated/api/project_resources/project_resources_delete.py +252 -0
  93. taskadence/_generated/api/project_resources/project_resources_list.py +355 -0
  94. taskadence/_generated/api/project_resources/project_resources_read.py +256 -0
  95. taskadence/_generated/api/project_resources/project_resources_update.py +270 -0
  96. taskadence/_generated/api/project_resources/project_resources_upload.py +268 -0
  97. taskadence/_generated/api/project_stats/__init__.py +3 -0
  98. taskadence/_generated/api/project_stats/project_stats_read.py +236 -0
  99. taskadence/_generated/api/projects/__init__.py +3 -0
  100. taskadence/_generated/api/projects/projects_create.py +233 -0
  101. taskadence/_generated/api/projects/projects_delete.py +232 -0
  102. taskadence/_generated/api/projects/projects_list.py +386 -0
  103. taskadence/_generated/api/projects/projects_read.py +236 -0
  104. taskadence/_generated/api/projects/projects_reorder.py +235 -0
  105. taskadence/_generated/api/projects/projects_replace.py +252 -0
  106. taskadence/_generated/api/projects/projects_update.py +248 -0
  107. taskadence/_generated/api/releases/__init__.py +3 -0
  108. taskadence/_generated/api/releases/releases_whats_new.py +286 -0
  109. taskadence/_generated/api/sections/__init__.py +3 -0
  110. taskadence/_generated/api/sections/sections_create.py +221 -0
  111. taskadence/_generated/api/sections/sections_delete.py +217 -0
  112. taskadence/_generated/api/sections/sections_list.py +461 -0
  113. taskadence/_generated/api/sections/sections_reorder.py +228 -0
  114. taskadence/_generated/api/sections/sections_update.py +232 -0
  115. taskadence/_generated/api/service_accounts/__init__.py +3 -0
  116. taskadence/_generated/api/service_accounts/service_accounts_create.py +242 -0
  117. taskadence/_generated/api/service_accounts/service_accounts_delete.py +235 -0
  118. taskadence/_generated/api/service_accounts/service_accounts_list.py +319 -0
  119. taskadence/_generated/api/service_accounts/service_accounts_update.py +248 -0
  120. taskadence/_generated/api/sprints/__init__.py +3 -0
  121. taskadence/_generated/api/sprints/sprints_create.py +234 -0
  122. taskadence/_generated/api/sprints/sprints_delete.py +258 -0
  123. taskadence/_generated/api/sprints/sprints_list.py +323 -0
  124. taskadence/_generated/api/sprints/sprints_update.py +252 -0
  125. taskadence/_generated/api/task_attachments/__init__.py +3 -0
  126. taskadence/_generated/api/task_attachments/task_attachments_create.py +290 -0
  127. taskadence/_generated/api/task_attachments/task_attachments_delete.py +251 -0
  128. taskadence/_generated/api/task_attachments/task_attachments_list.py +334 -0
  129. taskadence/_generated/api/task_attachments/task_attachments_read.py +261 -0
  130. taskadence/_generated/api/task_attachments/task_attachments_update.py +279 -0
  131. taskadence/_generated/api/task_comments/__init__.py +3 -0
  132. taskadence/_generated/api/task_comments/task_comments_create.py +235 -0
  133. taskadence/_generated/api/task_comments/task_comments_delete.py +257 -0
  134. taskadence/_generated/api/task_comments/task_comments_list.py +339 -0
  135. taskadence/_generated/api/task_comments/task_comments_read.py +261 -0
  136. taskadence/_generated/api/task_comments/task_comments_reply.py +235 -0
  137. taskadence/_generated/api/task_comments/task_comments_update.py +275 -0
  138. taskadence/_generated/api/task_history/__init__.py +3 -0
  139. taskadence/_generated/api/task_history/task_history_list.py +339 -0
  140. taskadence/_generated/api/task_history/task_history_read.py +261 -0
  141. taskadence/_generated/api/tasks/__init__.py +3 -0
  142. taskadence/_generated/api/tasks/tasks_add_dependency.py +230 -0
  143. taskadence/_generated/api/tasks/tasks_add_subtask.py +230 -0
  144. taskadence/_generated/api/tasks/tasks_create.py +231 -0
  145. taskadence/_generated/api/tasks/tasks_delete.py +236 -0
  146. taskadence/_generated/api/tasks/tasks_list.py +1044 -0
  147. taskadence/_generated/api/tasks/tasks_read.py +236 -0
  148. taskadence/_generated/api/tasks/tasks_remove_dependency.py +223 -0
  149. taskadence/_generated/api/tasks/tasks_remove_subtask.py +223 -0
  150. taskadence/_generated/api/tasks/tasks_replace.py +274 -0
  151. taskadence/_generated/api/tasks/tasks_review.py +270 -0
  152. taskadence/_generated/api/tasks/tasks_set_milestone.py +262 -0
  153. taskadence/_generated/api/tasks/tasks_set_project.py +238 -0
  154. taskadence/_generated/api/tasks/tasks_set_section.py +246 -0
  155. taskadence/_generated/api/tasks/tasks_set_sprint.py +262 -0
  156. taskadence/_generated/api/tasks/tasks_update.py +262 -0
  157. taskadence/_generated/api/teams/__init__.py +3 -0
  158. taskadence/_generated/api/teams/teams_add_member.py +238 -0
  159. taskadence/_generated/api/teams/teams_create.py +221 -0
  160. taskadence/_generated/api/teams/teams_delete.py +282 -0
  161. taskadence/_generated/api/teams/teams_list.py +339 -0
  162. taskadence/_generated/api/teams/teams_list_tasks.py +373 -0
  163. taskadence/_generated/api/teams/teams_read.py +236 -0
  164. taskadence/_generated/api/teams/teams_remove_member.py +227 -0
  165. taskadence/_generated/api/teams/teams_replace.py +260 -0
  166. taskadence/_generated/api/teams/teams_replace_member.py +264 -0
  167. taskadence/_generated/api/teams/teams_update.py +248 -0
  168. taskadence/_generated/api/teams/teams_update_member.py +252 -0
  169. taskadence/_generated/api/tokens/__init__.py +3 -0
  170. taskadence/_generated/api/tokens/tokens_create.py +249 -0
  171. taskadence/_generated/api/tokens/tokens_delete.py +209 -0
  172. taskadence/_generated/api/tokens/tokens_list.py +327 -0
  173. taskadence/_generated/api/tokens/tokens_read.py +236 -0
  174. taskadence/_generated/api/tokens/tokens_rotate.py +219 -0
  175. taskadence/_generated/api/tokens/tokens_update.py +230 -0
  176. taskadence/_generated/api/uploads/__init__.py +3 -0
  177. taskadence/_generated/api/uploads/uploads_complete.py +311 -0
  178. taskadence/_generated/api/uploads/uploads_create.py +251 -0
  179. taskadence/_generated/api/view_pins/__init__.py +3 -0
  180. taskadence/_generated/api/view_pins/view_pins_list.py +315 -0
  181. taskadence/_generated/api/view_pins/view_pins_pin_project.py +230 -0
  182. taskadence/_generated/api/view_pins/view_pins_pin_view.py +213 -0
  183. taskadence/_generated/api/view_pins/view_pins_reorder.py +221 -0
  184. taskadence/_generated/api/view_pins/view_pins_unpin_project.py +213 -0
  185. taskadence/_generated/api/view_pins/view_pins_unpin_view.py +213 -0
  186. taskadence/_generated/api/views/__init__.py +3 -0
  187. taskadence/_generated/api/views/views_create.py +247 -0
  188. taskadence/_generated/api/views/views_delete.py +230 -0
  189. taskadence/_generated/api/views/views_duplicate.py +234 -0
  190. taskadence/_generated/api/views/views_list.py +367 -0
  191. taskadence/_generated/api/views/views_read.py +236 -0
  192. taskadence/_generated/api/views/views_rows.py +336 -0
  193. taskadence/_generated/api/views/views_update.py +254 -0
  194. taskadence/_generated/api/webhooks/__init__.py +3 -0
  195. taskadence/_generated/api/webhooks/webhooks_create.py +231 -0
  196. taskadence/_generated/api/webhooks/webhooks_delete.py +230 -0
  197. taskadence/_generated/api/webhooks/webhooks_deliveries.py +319 -0
  198. taskadence/_generated/api/webhooks/webhooks_delivery.py +254 -0
  199. taskadence/_generated/api/webhooks/webhooks_events.py +312 -0
  200. taskadence/_generated/api/webhooks/webhooks_list.py +323 -0
  201. taskadence/_generated/api/webhooks/webhooks_read.py +236 -0
  202. taskadence/_generated/api/webhooks/webhooks_replay.py +233 -0
  203. taskadence/_generated/api/webhooks/webhooks_rotate_secret.py +217 -0
  204. taskadence/_generated/api/webhooks/webhooks_test.py +221 -0
  205. taskadence/_generated/api/webhooks/webhooks_update.py +256 -0
  206. taskadence/_generated/client.py +272 -0
  207. taskadence/_generated/errors.py +18 -0
  208. taskadence/_generated/models/__init__.py +619 -0
  209. taskadence/_generated/models/access_review.py +167 -0
  210. taskadence/_generated/models/acknowledgement.py +73 -0
  211. taskadence/_generated/models/agent_task_review_enum.py +17 -0
  212. taskadence/_generated/models/audit_export_row.py +358 -0
  213. taskadence/_generated/models/audit_export_row_after_type_0.py +53 -0
  214. taskadence/_generated/models/audit_export_row_before_type_0.py +53 -0
  215. taskadence/_generated/models/audit_page.py +108 -0
  216. taskadence/_generated/models/audit_page_data_item.py +53 -0
  217. taskadence/_generated/models/authorization_server_metadata.py +218 -0
  218. taskadence/_generated/models/availability_create.py +92 -0
  219. taskadence/_generated/models/availability_deleted.py +78 -0
  220. taskadence/_generated/models/availability_entry.py +226 -0
  221. taskadence/_generated/models/availability_member.py +101 -0
  222. taskadence/_generated/models/availability_range.py +131 -0
  223. taskadence/_generated/models/availability_update.py +147 -0
  224. taskadence/_generated/models/body_upload_attachment_v1_task_attachments_post.py +175 -0
  225. taskadence/_generated/models/body_upload_resource_v1_project_resources_upload_post.py +139 -0
  226. taskadence/_generated/models/client_registration_response.py +199 -0
  227. taskadence/_generated/models/commit_type.py +25 -0
  228. taskadence/_generated/models/connected_app.py +243 -0
  229. taskadence/_generated/models/connected_app_revoked.py +93 -0
  230. taskadence/_generated/models/delivery_detail.py +405 -0
  231. taskadence/_generated/models/delivery_detail_attempt_log_item.py +53 -0
  232. taskadence/_generated/models/delivery_detail_payload.py +55 -0
  233. taskadence/_generated/models/delivery_detail_request_headers.py +55 -0
  234. taskadence/_generated/models/delivery_detail_status.py +19 -0
  235. taskadence/_generated/models/delivery_out.py +334 -0
  236. taskadence/_generated/models/delivery_out_status.py +19 -0
  237. taskadence/_generated/models/dependency_link.py +52 -0
  238. taskadence/_generated/models/designation.py +504 -0
  239. taskadence/_generated/models/designation_catalog.py +116 -0
  240. taskadence/_generated/models/designation_create.py +204 -0
  241. taskadence/_generated/models/designation_create_metadata_type_0.py +53 -0
  242. taskadence/_generated/models/designation_deleted.py +86 -0
  243. taskadence/_generated/models/designation_group.py +95 -0
  244. taskadence/_generated/models/designation_metadata_type_0.py +53 -0
  245. taskadence/_generated/models/designation_update.py +213 -0
  246. taskadence/_generated/models/designation_update_metadata_type_0.py +53 -0
  247. taskadence/_generated/models/designation_usage.py +97 -0
  248. taskadence/_generated/models/designation_visibility.py +148 -0
  249. taskadence/_generated/models/environment.py +17 -0
  250. taskadence/_generated/models/goal_create.py +106 -0
  251. taskadence/_generated/models/goal_deleted.py +86 -0
  252. taskadence/_generated/models/goal_move.py +52 -0
  253. taskadence/_generated/models/goal_moved.py +410 -0
  254. taskadence/_generated/models/goal_moved_tasks_type_0_item.py +53 -0
  255. taskadence/_generated/models/goal_order.py +54 -0
  256. taskadence/_generated/models/goal_out.py +402 -0
  257. taskadence/_generated/models/goal_out_tasks_type_0_item.py +53 -0
  258. taskadence/_generated/models/goal_task_unfiled.py +86 -0
  259. taskadence/_generated/models/goal_tasks_file.py +54 -0
  260. taskadence/_generated/models/goal_tasks_filed.py +86 -0
  261. taskadence/_generated/models/goal_update.py +137 -0
  262. taskadence/_generated/models/goals_reordered.py +80 -0
  263. taskadence/_generated/models/health.py +73 -0
  264. taskadence/_generated/models/http_validation_error.py +90 -0
  265. taskadence/_generated/models/invite_status_enum.py +18 -0
  266. taskadence/_generated/models/mcp_artefact.py +121 -0
  267. taskadence/_generated/models/mcp_artefact_kind.py +17 -0
  268. taskadence/_generated/models/mcp_artefact_lang.py +17 -0
  269. taskadence/_generated/models/mcp_client_row.py +192 -0
  270. taskadence/_generated/models/mcp_clients_out.py +144 -0
  271. taskadence/_generated/models/mcp_clients_out_scopes_for_group.py +68 -0
  272. taskadence/_generated/models/mcp_group_out.py +125 -0
  273. taskadence/_generated/models/mcp_group_scopes.py +80 -0
  274. taskadence/_generated/models/mcp_package.py +98 -0
  275. taskadence/_generated/models/mcp_package_registry.py +16 -0
  276. taskadence/_generated/models/mcp_stdio.py +109 -0
  277. taskadence/_generated/models/mcp_stdio_env.py +55 -0
  278. taskadence/_generated/models/mcp_stdio_flags.py +55 -0
  279. taskadence/_generated/models/mcp_stdio_packages.py +70 -0
  280. taskadence/_generated/models/me_auth.py +201 -0
  281. taskadence/_generated/models/me_auth_grant_type.py +17 -0
  282. taskadence/_generated/models/me_auth_token_kind.py +16 -0
  283. taskadence/_generated/models/me_organization.py +121 -0
  284. taskadence/_generated/models/me_out.py +164 -0
  285. taskadence/_generated/models/me_principal.py +151 -0
  286. taskadence/_generated/models/me_principal_type.py +16 -0
  287. taskadence/_generated/models/mention.py +123 -0
  288. taskadence/_generated/models/mention_in.py +105 -0
  289. taskadence/_generated/models/mfa_enrolment_counts.py +79 -0
  290. taskadence/_generated/models/mfa_requirement_enum.py +17 -0
  291. taskadence/_generated/models/milestone_create.py +106 -0
  292. taskadence/_generated/models/milestone_deleted.py +86 -0
  293. taskadence/_generated/models/milestone_move.py +52 -0
  294. taskadence/_generated/models/milestone_moved.py +387 -0
  295. taskadence/_generated/models/milestone_moved_tasks_type_0_item.py +53 -0
  296. taskadence/_generated/models/milestone_order.py +54 -0
  297. taskadence/_generated/models/milestone_org_out.py +388 -0
  298. taskadence/_generated/models/milestone_org_out_tasks_type_0_item.py +53 -0
  299. taskadence/_generated/models/milestone_out.py +379 -0
  300. taskadence/_generated/models/milestone_out_tasks_type_0_item.py +53 -0
  301. taskadence/_generated/models/milestone_task_unfiled.py +86 -0
  302. taskadence/_generated/models/milestone_tasks_file.py +54 -0
  303. taskadence/_generated/models/milestone_tasks_filed.py +86 -0
  304. taskadence/_generated/models/milestone_update.py +161 -0
  305. taskadence/_generated/models/milestones_reordered.py +80 -0
  306. taskadence/_generated/models/o_auth_client_create.py +161 -0
  307. taskadence/_generated/models/o_auth_client_create_client_type.py +16 -0
  308. taskadence/_generated/models/o_auth_client_created.py +491 -0
  309. taskadence/_generated/models/o_auth_client_created_client_type.py +16 -0
  310. taskadence/_generated/models/o_auth_client_created_registration.py +16 -0
  311. taskadence/_generated/models/o_auth_client_created_review_state.py +16 -0
  312. taskadence/_generated/models/o_auth_client_created_status.py +16 -0
  313. taskadence/_generated/models/o_auth_client_out.py +470 -0
  314. taskadence/_generated/models/o_auth_client_out_client_type.py +16 -0
  315. taskadence/_generated/models/o_auth_client_out_registration.py +16 -0
  316. taskadence/_generated/models/o_auth_client_out_review_state.py +16 -0
  317. taskadence/_generated/models/o_auth_client_out_status.py +16 -0
  318. taskadence/_generated/models/o_auth_client_update.py +188 -0
  319. taskadence/_generated/models/o_auth_error_body.py +94 -0
  320. taskadence/_generated/models/org_card.py +310 -0
  321. taskadence/_generated/models/org_goals_out.py +106 -0
  322. taskadence/_generated/models/org_join_mode_enum.py +16 -0
  323. taskadence/_generated/models/org_milestones_out.py +106 -0
  324. taskadence/_generated/models/organization_in_db.py +460 -0
  325. taskadence/_generated/models/organization_in_db_metadata_type_0.py +53 -0
  326. taskadence/_generated/models/organization_invite_create.py +327 -0
  327. taskadence/_generated/models/organization_invite_in_db.py +463 -0
  328. taskadence/_generated/models/organization_invite_update.py +220 -0
  329. taskadence/_generated/models/organization_member_in_db.py +454 -0
  330. taskadence/_generated/models/organization_member_update.py +126 -0
  331. taskadence/_generated/models/organization_settings_out.py +385 -0
  332. taskadence/_generated/models/organization_settings_update.py +364 -0
  333. taskadence/_generated/models/organization_settings_update_idle_timeout_minutes_type_0.py +25 -0
  334. taskadence/_generated/models/page_connected_app.py +109 -0
  335. taskadence/_generated/models/page_delivery_out.py +109 -0
  336. taskadence/_generated/models/page_designation.py +109 -0
  337. taskadence/_generated/models/page_o_auth_client_out.py +109 -0
  338. taskadence/_generated/models/page_org_card.py +109 -0
  339. taskadence/_generated/models/page_organization_invite_in_db.py +109 -0
  340. taskadence/_generated/models/page_organization_member_in_db.py +109 -0
  341. taskadence/_generated/models/page_project_card.py +109 -0
  342. taskadence/_generated/models/page_project_member_in_db.py +109 -0
  343. taskadence/_generated/models/page_project_resource_in_db.py +109 -0
  344. taskadence/_generated/models/page_section_out.py +109 -0
  345. taskadence/_generated/models/page_service_account_out.py +109 -0
  346. taskadence/_generated/models/page_task_attachment_in_db.py +109 -0
  347. taskadence/_generated/models/page_task_comment_in_db.py +109 -0
  348. taskadence/_generated/models/page_task_history_in_db.py +109 -0
  349. taskadence/_generated/models/page_token_out.py +109 -0
  350. taskadence/_generated/models/page_webhook_event_type.py +109 -0
  351. taskadence/_generated/models/page_webhook_out.py +109 -0
  352. taskadence/_generated/models/pin_list_page.py +108 -0
  353. taskadence/_generated/models/pin_order.py +78 -0
  354. taskadence/_generated/models/pin_out.py +203 -0
  355. taskadence/_generated/models/pin_ref.py +64 -0
  356. taskadence/_generated/models/pin_type_enum.py +16 -0
  357. taskadence/_generated/models/priority_enum.py +19 -0
  358. taskadence/_generated/models/problem.py +167 -0
  359. taskadence/_generated/models/problem_errors_item.py +53 -0
  360. taskadence/_generated/models/problem_mfa.py +109 -0
  361. taskadence/_generated/models/problem_mfa_reason.py +16 -0
  362. taskadence/_generated/models/problem_mfa_required_for.py +16 -0
  363. taskadence/_generated/models/problem_type.py +63 -0
  364. taskadence/_generated/models/project_card.py +574 -0
  365. taskadence/_generated/models/project_card_metadata_type_0.py +53 -0
  366. taskadence/_generated/models/project_create.py +494 -0
  367. taskadence/_generated/models/project_create_metadata_type_0.py +53 -0
  368. taskadence/_generated/models/project_goals_out.py +135 -0
  369. taskadence/_generated/models/project_in_db.py +565 -0
  370. taskadence/_generated/models/project_in_db_metadata_type_0.py +53 -0
  371. taskadence/_generated/models/project_lead_out.py +145 -0
  372. taskadence/_generated/models/project_member_create.py +349 -0
  373. taskadence/_generated/models/project_member_in_db.py +368 -0
  374. taskadence/_generated/models/project_member_update.py +161 -0
  375. taskadence/_generated/models/project_milestones_group.py +143 -0
  376. taskadence/_generated/models/project_milestones_out.py +135 -0
  377. taskadence/_generated/models/project_order.py +63 -0
  378. taskadence/_generated/models/project_resource_create.py +191 -0
  379. taskadence/_generated/models/project_resource_in_db.py +384 -0
  380. taskadence/_generated/models/project_resource_update.py +125 -0
  381. taskadence/_generated/models/project_role_enum.py +17 -0
  382. taskadence/_generated/models/project_stats_in_db.py +153 -0
  383. taskadence/_generated/models/project_status_enum.py +24 -0
  384. taskadence/_generated/models/project_update.py +454 -0
  385. taskadence/_generated/models/project_update_metadata_type_0.py +53 -0
  386. taskadence/_generated/models/project_visibility_enum.py +16 -0
  387. taskadence/_generated/models/projects_reordered.py +88 -0
  388. taskadence/_generated/models/protected_resource_metadata.py +137 -0
  389. taskadence/_generated/models/registration_error_body.py +95 -0
  390. taskadence/_generated/models/registration_error_body_error.py +16 -0
  391. taskadence/_generated/models/release.py +215 -0
  392. taskadence/_generated/models/release_note_item.py +278 -0
  393. taskadence/_generated/models/release_summary.py +97 -0
  394. taskadence/_generated/models/release_type.py +18 -0
  395. taskadence/_generated/models/reply_create.py +60 -0
  396. taskadence/_generated/models/review_member.py +261 -0
  397. taskadence/_generated/models/review_meta.py +70 -0
  398. taskadence/_generated/models/review_project.py +101 -0
  399. taskadence/_generated/models/review_summary.py +158 -0
  400. taskadence/_generated/models/review_token.py +184 -0
  401. taskadence/_generated/models/scope_ref.py +82 -0
  402. taskadence/_generated/models/section_create.py +101 -0
  403. taskadence/_generated/models/section_out.py +225 -0
  404. taskadence/_generated/models/section_reorder.py +72 -0
  405. taskadence/_generated/models/section_scope_enum.py +17 -0
  406. taskadence/_generated/models/section_update.py +85 -0
  407. taskadence/_generated/models/sections_for_scopes.py +133 -0
  408. taskadence/_generated/models/service_account_create.py +75 -0
  409. taskadence/_generated/models/service_account_out.py +209 -0
  410. taskadence/_generated/models/service_account_update.py +52 -0
  411. taskadence/_generated/models/sprint_create.py +156 -0
  412. taskadence/_generated/models/sprint_deleted.py +86 -0
  413. taskadence/_generated/models/sprint_list_page.py +116 -0
  414. taskadence/_generated/models/sprint_out.py +371 -0
  415. taskadence/_generated/models/sprint_update.py +208 -0
  416. taskadence/_generated/models/storage_breakdown.py +104 -0
  417. taskadence/_generated/models/storage_by_kind.py +88 -0
  418. taskadence/_generated/models/storage_day.py +78 -0
  419. taskadence/_generated/models/storage_file.py +171 -0
  420. taskadence/_generated/models/storage_file_kind.py +17 -0
  421. taskadence/_generated/models/storage_project.py +101 -0
  422. taskadence/_generated/models/storage_usage.py +233 -0
  423. taskadence/_generated/models/storage_usage_status.py +19 -0
  424. taskadence/_generated/models/subtask_link.py +52 -0
  425. taskadence/_generated/models/task_attachment_in_db.py +333 -0
  426. taskadence/_generated/models/task_attachment_update.py +127 -0
  427. taskadence/_generated/models/task_card_view.py +1019 -0
  428. taskadence/_generated/models/task_card_view_metadata_type_0_item.py +53 -0
  429. taskadence/_generated/models/task_card_view_type_data_type_0.py +53 -0
  430. taskadence/_generated/models/task_comment_create.py +282 -0
  431. taskadence/_generated/models/task_comment_in_db.py +329 -0
  432. taskadence/_generated/models/task_comment_update.py +85 -0
  433. taskadence/_generated/models/task_create.py +669 -0
  434. taskadence/_generated/models/task_create_metadata_type_0_item.py +53 -0
  435. taskadence/_generated/models/task_create_type_data_type_0.py +53 -0
  436. taskadence/_generated/models/task_history_in_db.py +231 -0
  437. taskadence/_generated/models/task_history_in_db_metadata_type_0_item.py +53 -0
  438. taskadence/_generated/models/task_in_db.py +997 -0
  439. taskadence/_generated/models/task_in_db_metadata_type_0_item.py +53 -0
  440. taskadence/_generated/models/task_in_db_type_data_type_0.py +53 -0
  441. taskadence/_generated/models/task_list_page.py +109 -0
  442. taskadence/_generated/models/task_milestone_set.py +67 -0
  443. taskadence/_generated/models/task_project_set.py +66 -0
  444. taskadence/_generated/models/task_review_decision.py +58 -0
  445. taskadence/_generated/models/task_review_decision_decision.py +16 -0
  446. taskadence/_generated/models/task_section_out.py +118 -0
  447. taskadence/_generated/models/task_section_set.py +105 -0
  448. taskadence/_generated/models/task_sprint_set.py +65 -0
  449. taskadence/_generated/models/task_status_enum.py +21 -0
  450. taskadence/_generated/models/task_type_enum.py +16 -0
  451. taskadence/_generated/models/task_update.py +582 -0
  452. taskadence/_generated/models/task_update_metadata_type_0_item.py +53 -0
  453. taskadence/_generated/models/task_update_type_data_type_0.py +53 -0
  454. taskadence/_generated/models/team_create.py +95 -0
  455. taskadence/_generated/models/team_deleted.py +94 -0
  456. taskadence/_generated/models/team_detail.py +298 -0
  457. taskadence/_generated/models/team_list_page.py +116 -0
  458. taskadence/_generated/models/team_member_create.py +73 -0
  459. taskadence/_generated/models/team_member_designation.py +75 -0
  460. taskadence/_generated/models/team_member_out.py +192 -0
  461. taskadence/_generated/models/team_member_update.py +56 -0
  462. taskadence/_generated/models/team_out.py +270 -0
  463. taskadence/_generated/models/team_role_enum.py +16 -0
  464. taskadence/_generated/models/team_update.py +85 -0
  465. taskadence/_generated/models/token_create.py +190 -0
  466. taskadence/_generated/models/token_create_kind.py +16 -0
  467. taskadence/_generated/models/token_created.py +461 -0
  468. taskadence/_generated/models/token_created_grant_type.py +17 -0
  469. taskadence/_generated/models/token_created_kind.py +16 -0
  470. taskadence/_generated/models/token_created_status.py +17 -0
  471. taskadence/_generated/models/token_out.py +452 -0
  472. taskadence/_generated/models/token_out_grant_type.py +17 -0
  473. taskadence/_generated/models/token_out_kind.py +16 -0
  474. taskadence/_generated/models/token_out_status.py +17 -0
  475. taskadence/_generated/models/token_response.py +113 -0
  476. taskadence/_generated/models/token_update.py +52 -0
  477. taskadence/_generated/models/unattached_token.py +192 -0
  478. taskadence/_generated/models/upload_complete_in.py +65 -0
  479. taskadence/_generated/models/upload_create_in.py +193 -0
  480. taskadence/_generated/models/upload_create_in_kind.py +16 -0
  481. taskadence/_generated/models/upload_create_out.py +116 -0
  482. taskadence/_generated/models/upload_create_out_headers.py +55 -0
  483. taskadence/_generated/models/validation_error.py +134 -0
  484. taskadence/_generated/models/validation_error_context.py +53 -0
  485. taskadence/_generated/models/view_create.py +165 -0
  486. taskadence/_generated/models/view_create_display.py +55 -0
  487. taskadence/_generated/models/view_create_query.py +83 -0
  488. taskadence/_generated/models/view_deleted.py +78 -0
  489. taskadence/_generated/models/view_duplicate.py +102 -0
  490. taskadence/_generated/models/view_list_page.py +108 -0
  491. taskadence/_generated/models/view_out.py +295 -0
  492. taskadence/_generated/models/view_out_display.py +53 -0
  493. taskadence/_generated/models/view_out_query.py +53 -0
  494. taskadence/_generated/models/view_resource_enum.py +16 -0
  495. taskadence/_generated/models/view_scope_enum.py +17 -0
  496. taskadence/_generated/models/view_update.py +168 -0
  497. taskadence/_generated/models/view_update_display_type_0.py +53 -0
  498. taskadence/_generated/models/view_update_query_type_0.py +78 -0
  499. taskadence/_generated/models/visibility_update.py +85 -0
  500. taskadence/_generated/models/webhook_actor.py +100 -0
  501. taskadence/_generated/models/webhook_create.py +113 -0
  502. taskadence/_generated/models/webhook_created.py +438 -0
  503. taskadence/_generated/models/webhook_created_status.py +17 -0
  504. taskadence/_generated/models/webhook_event.py +161 -0
  505. taskadence/_generated/models/webhook_event_data.py +140 -0
  506. taskadence/_generated/models/webhook_event_data_after_type_0.py +53 -0
  507. taskadence/_generated/models/webhook_event_data_before_type_0.py +53 -0
  508. taskadence/_generated/models/webhook_event_type.py +97 -0
  509. taskadence/_generated/models/webhook_out.py +428 -0
  510. taskadence/_generated/models/webhook_out_status.py +17 -0
  511. taskadence/_generated/models/webhook_update.py +184 -0
  512. taskadence/_generated/models/webhook_update_status_type_0.py +16 -0
  513. taskadence/_generated/models/whats_new_response.py +107 -0
  514. taskadence/_generated/models/whats_new_response_summary.py +53 -0
  515. taskadence/_generated/types.py +56 -0
  516. taskadence/_operations.py +1969 -0
  517. taskadence/_uploads.py +527 -0
  518. taskadence/_version.py +3 -0
  519. taskadence/cli/__init__.py +612 -0
  520. taskadence/cli/_config.py +166 -0
  521. taskadence/dataframe.py +68 -0
  522. taskadence/errors.py +350 -0
  523. taskadence/models.py +14 -0
  524. taskadence/pagination.py +137 -0
  525. taskadence/py.typed +0 -0
  526. taskadence/resources.py +6127 -0
  527. taskadence/webhooks.py +149 -0
  528. taskadence-0.1.0.dist-info/METADATA +524 -0
  529. taskadence-0.1.0.dist-info/RECORD +533 -0
  530. taskadence-0.1.0.dist-info/WHEEL +4 -0
  531. taskadence-0.1.0.dist-info/entry_points.txt +3 -0
  532. taskadence-0.1.0.dist-info/licenses/LICENSE +202 -0
  533. taskadence-0.1.0.dist-info/licenses/NOTICE +2 -0
@@ -0,0 +1,203 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping
6
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
7
+
8
+ from attrs import define as _attrs_define
9
+ from attrs import field as _attrs_field
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+ from ..models.pin_type_enum import check_pin_type_enum
14
+ from ..models.pin_type_enum import PinTypeEnum
15
+ from ..models.view_resource_enum import check_view_resource_enum
16
+ from ..models.view_resource_enum import ViewResourceEnum
17
+ from ..models.view_scope_enum import check_view_scope_enum
18
+ from ..models.view_scope_enum import ViewScopeEnum
19
+ from ..types import UNSET, Unset
20
+ from typing import cast
21
+ import datetime
22
+
23
+
24
+ T = TypeVar("T", bound="PinOut")
25
+
26
+
27
+ @_attrs_define
28
+ class PinOut:
29
+ """Returned by `view-pins.pin_project` and `view-pins.pin_view`.
30
+
31
+ Attributes:
32
+ pin_type (PinTypeEnum): One of `view`, `project`. Used by `PinOut` and 1 more.
33
+ pin_id (str):
34
+ org_id (str):
35
+ position (float):
36
+ label (str): The view's name or the project's name, resolved server-side
37
+ scope_type (None | Unset | ViewScopeEnum): For a view pin: the view's scope
38
+ resource (None | Unset | ViewResourceEnum): For a view pin: the list the view queries, `task` or `project`.
39
+ Empty for a project pin.
40
+ created_at (datetime.datetime | None | Unset):
41
+ """
42
+
43
+ pin_type: PinTypeEnum
44
+ pin_id: str
45
+ org_id: str
46
+ position: float
47
+ label: str
48
+ scope_type: None | Unset | ViewScopeEnum = UNSET
49
+ resource: None | Unset | ViewResourceEnum = UNSET
50
+ created_at: datetime.datetime | None | Unset = UNSET
51
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
52
+ # taskadence: the response's `ETag` (set by the facade on single reads / writes). Not a property of the resource: it is
53
+ # never serialized by `to_dict` nor read by `from_dict`, and it does not take part in equality.
54
+ etag: str | None = _attrs_field(default=None, init=False, repr=False, eq=False)
55
+
56
+ def to_dict(self) -> dict[str, Any]:
57
+ pin_type: str = self.pin_type
58
+
59
+ pin_id = self.pin_id
60
+
61
+ org_id = self.org_id
62
+
63
+ position = self.position
64
+
65
+ label = self.label
66
+
67
+ scope_type: None | str | Unset
68
+ if isinstance(self.scope_type, Unset):
69
+ scope_type = UNSET
70
+ elif isinstance(self.scope_type, str):
71
+ scope_type = self.scope_type
72
+ else:
73
+ scope_type = self.scope_type
74
+
75
+ resource: None | str | Unset
76
+ if isinstance(self.resource, Unset):
77
+ resource = UNSET
78
+ elif isinstance(self.resource, str):
79
+ resource = self.resource
80
+ else:
81
+ resource = self.resource
82
+
83
+ created_at: None | str | Unset
84
+ if isinstance(self.created_at, Unset):
85
+ created_at = UNSET
86
+ elif isinstance(self.created_at, datetime.datetime):
87
+ created_at = self.created_at.isoformat()
88
+ else:
89
+ created_at = self.created_at
90
+
91
+ field_dict: dict[str, Any] = {}
92
+ field_dict.update(self.additional_properties)
93
+ field_dict.update(
94
+ {
95
+ "pin_type": pin_type,
96
+ "pin_id": pin_id,
97
+ "org_id": org_id,
98
+ "position": position,
99
+ "label": label,
100
+ }
101
+ )
102
+ if scope_type is not UNSET:
103
+ field_dict["scope_type"] = scope_type
104
+ if resource is not UNSET:
105
+ field_dict["resource"] = resource
106
+ if created_at is not UNSET:
107
+ field_dict["created_at"] = created_at
108
+
109
+ return field_dict
110
+
111
+ @classmethod
112
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
113
+ d = dict(src_dict)
114
+ pin_type = check_pin_type_enum(d.pop("pin_type"))
115
+
116
+ pin_id = d.pop("pin_id")
117
+
118
+ org_id = d.pop("org_id")
119
+
120
+ position = d.pop("position")
121
+
122
+ label = d.pop("label")
123
+
124
+ def _parse_scope_type(data: object) -> None | Unset | ViewScopeEnum:
125
+ if data is None:
126
+ return data
127
+ if isinstance(data, Unset):
128
+ return data
129
+ try:
130
+ if not isinstance(data, str):
131
+ raise TypeError()
132
+ scope_type_type_0 = check_view_scope_enum(data)
133
+
134
+ return scope_type_type_0
135
+ except (TypeError, ValueError, AttributeError, KeyError):
136
+ pass
137
+ return cast(None | Unset | ViewScopeEnum, data)
138
+
139
+ scope_type = _parse_scope_type(d.pop("scope_type", UNSET))
140
+
141
+ def _parse_resource(data: object) -> None | Unset | ViewResourceEnum:
142
+ if data is None:
143
+ return data
144
+ if isinstance(data, Unset):
145
+ return data
146
+ try:
147
+ if not isinstance(data, str):
148
+ raise TypeError()
149
+ resource_type_0 = check_view_resource_enum(data)
150
+
151
+ return resource_type_0
152
+ except (TypeError, ValueError, AttributeError, KeyError):
153
+ pass
154
+ return cast(None | Unset | ViewResourceEnum, data)
155
+
156
+ resource = _parse_resource(d.pop("resource", UNSET))
157
+
158
+ def _parse_created_at(data: object) -> datetime.datetime | None | Unset:
159
+ if data is None:
160
+ return data
161
+ if isinstance(data, Unset):
162
+ return data
163
+ try:
164
+ if not isinstance(data, str):
165
+ raise TypeError()
166
+ created_at_type_0 = datetime.datetime.fromisoformat(data)
167
+
168
+ return created_at_type_0
169
+ except (TypeError, ValueError, AttributeError, KeyError):
170
+ pass
171
+ return cast(datetime.datetime | None | Unset, data)
172
+
173
+ created_at = _parse_created_at(d.pop("created_at", UNSET))
174
+
175
+ pin_out = cls(
176
+ pin_type=pin_type,
177
+ pin_id=pin_id,
178
+ org_id=org_id,
179
+ position=position,
180
+ label=label,
181
+ scope_type=scope_type,
182
+ resource=resource,
183
+ created_at=created_at,
184
+ )
185
+
186
+ pin_out.additional_properties = d
187
+ return pin_out
188
+
189
+ @property
190
+ def additional_keys(self) -> list[str]:
191
+ return list(self.additional_properties.keys())
192
+
193
+ def __getitem__(self, key: str) -> Any:
194
+ return self.additional_properties[key]
195
+
196
+ def __setitem__(self, key: str, value: Any) -> None:
197
+ self.additional_properties[key] = value
198
+
199
+ def __delitem__(self, key: str) -> None:
200
+ del self.additional_properties[key]
201
+
202
+ def __contains__(self, key: str) -> bool:
203
+ return key in self.additional_properties
@@ -0,0 +1,64 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping
6
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
7
+
8
+ from attrs import define as _attrs_define
9
+ from attrs import field as _attrs_field
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+ from ..models.pin_type_enum import check_pin_type_enum
14
+ from ..models.pin_type_enum import PinTypeEnum
15
+ from typing import cast
16
+
17
+
18
+ T = TypeVar("T", bound="PinRef")
19
+
20
+
21
+ @_attrs_define
22
+ class PinRef:
23
+ """Part of `PinOrder`.
24
+
25
+ Attributes:
26
+ pin_type (PinTypeEnum): One of `view`, `project`. Used by `PinOut` and 1 more.
27
+ pin_id (str):
28
+ """
29
+
30
+ pin_type: PinTypeEnum
31
+ pin_id: str
32
+ # taskadence: the response's `ETag` (set by the facade on single reads / writes). Not a property of the resource: it is
33
+ # never serialized by `to_dict` nor read by `from_dict`, and it does not take part in equality.
34
+ etag: str | None = _attrs_field(default=None, init=False, repr=False, eq=False)
35
+
36
+ def to_dict(self) -> dict[str, Any]:
37
+ pin_type: str = self.pin_type
38
+
39
+ pin_id = self.pin_id
40
+
41
+ field_dict: dict[str, Any] = {}
42
+
43
+ field_dict.update(
44
+ {
45
+ "pin_type": pin_type,
46
+ "pin_id": pin_id,
47
+ }
48
+ )
49
+
50
+ return field_dict
51
+
52
+ @classmethod
53
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
54
+ d = dict(src_dict)
55
+ pin_type = check_pin_type_enum(d.pop("pin_type"))
56
+
57
+ pin_id = d.pop("pin_id")
58
+
59
+ pin_ref = cls(
60
+ pin_type=pin_type,
61
+ pin_id=pin_id,
62
+ )
63
+
64
+ return pin_ref
@@ -0,0 +1,16 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from typing import Literal
4
+
5
+ PinTypeEnum = Literal["project", "view"]
6
+
7
+ PIN_TYPE_ENUM_VALUES: set[PinTypeEnum] = {
8
+ "project",
9
+ "view",
10
+ }
11
+
12
+
13
+ def check_pin_type_enum(value: str) -> PinTypeEnum:
14
+ if value in PIN_TYPE_ENUM_VALUES:
15
+ return value
16
+ raise TypeError(f"Unexpected value {value!r}. Expected one of {PIN_TYPE_ENUM_VALUES!r}")
@@ -0,0 +1,19 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from typing import Literal
4
+
5
+ PriorityEnum = Literal["critical", "high", "low", "medium", "none"]
6
+
7
+ PRIORITY_ENUM_VALUES: set[PriorityEnum] = {
8
+ "critical",
9
+ "high",
10
+ "low",
11
+ "medium",
12
+ "none",
13
+ }
14
+
15
+
16
+ def check_priority_enum(value: str) -> PriorityEnum:
17
+ if value in PRIORITY_ENUM_VALUES:
18
+ return value
19
+ raise TypeError(f"Unexpected value {value!r}. Expected one of {PRIORITY_ENUM_VALUES!r}")
@@ -0,0 +1,167 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping
6
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
7
+
8
+ from attrs import define as _attrs_define
9
+ from attrs import field as _attrs_field
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+ from ..models.problem_type import check_problem_type
14
+ from ..models.problem_type import ProblemType
15
+ from ..types import UNSET, Unset
16
+ from typing import cast
17
+
18
+ if TYPE_CHECKING:
19
+ from ..models.problem_errors_item import ProblemErrorsItem
20
+ from ..models.problem_mfa import ProblemMfa
21
+
22
+
23
+ T = TypeVar("T", bound="Problem")
24
+
25
+
26
+ @_attrs_define
27
+ class Problem:
28
+ """An RFC 9457 problem details object - the body of every error response. `detail` is the human-readable explanation;
29
+ `request_id` identifies the request for support.
30
+
31
+ Attributes:
32
+ type_ (ProblemType): `about:blank` or a `urn:taskadence:problem:*` identifier
33
+ title (str): Example: Forbidden.
34
+ status (int): Example: 403.
35
+ detail (Any): Human-readable explanation (a string; for a 422, the list of validation errors) Example: This task
36
+ is restricted to other users.
37
+ instance (str): Example: /v1/tasks/T123.
38
+ request_id (str): Example: 9b2f1c1e-8c1a-4a53-9f9e-0f5f1f2d7c11.
39
+ errors (list[ProblemErrorsItem] | Unset): Structured failures: validation errors, or `{loc, msg, allowed}` for a
40
+ bad parameter
41
+ mfa (ProblemMfa | Unset): On an `mfa-required` problem only: `enrolled` (does the person have an authenticator
42
+ app set up), `required_for` (`all` or `admins`) and `reason` (`org_policy`: the organization's requirement;
43
+ `step_up`: this action needs a second step)
44
+ """
45
+
46
+ type_: ProblemType
47
+ title: str
48
+ status: int
49
+ detail: Any
50
+ instance: str
51
+ request_id: str
52
+ errors: list[ProblemErrorsItem] | Unset = UNSET
53
+ mfa: ProblemMfa | Unset = UNSET
54
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
55
+ # taskadence: the response's `ETag` (set by the facade on single reads / writes). Not a property of the resource: it is
56
+ # never serialized by `to_dict` nor read by `from_dict`, and it does not take part in equality.
57
+ etag: str | None = _attrs_field(default=None, init=False, repr=False, eq=False)
58
+
59
+ def to_dict(self) -> dict[str, Any]:
60
+ from ..models.problem_errors_item import ProblemErrorsItem # noqa: PLC0415
61
+ from ..models.problem_mfa import ProblemMfa # noqa: PLC0415
62
+
63
+ type_: str = self.type_
64
+
65
+ title = self.title
66
+
67
+ status = self.status
68
+
69
+ detail = self.detail
70
+
71
+ instance = self.instance
72
+
73
+ request_id = self.request_id
74
+
75
+ errors: list[dict[str, Any]] | Unset = UNSET
76
+ if not isinstance(self.errors, Unset):
77
+ errors = []
78
+ for errors_item_data in self.errors:
79
+ errors_item = errors_item_data.to_dict()
80
+ errors.append(errors_item)
81
+
82
+ mfa: dict[str, Any] | Unset = UNSET
83
+ if not isinstance(self.mfa, Unset):
84
+ mfa = self.mfa.to_dict()
85
+
86
+ field_dict: dict[str, Any] = {}
87
+ field_dict.update(self.additional_properties)
88
+ field_dict.update(
89
+ {
90
+ "type": type_,
91
+ "title": title,
92
+ "status": status,
93
+ "detail": detail,
94
+ "instance": instance,
95
+ "request_id": request_id,
96
+ }
97
+ )
98
+ if errors is not UNSET:
99
+ field_dict["errors"] = errors
100
+ if mfa is not UNSET:
101
+ field_dict["mfa"] = mfa
102
+
103
+ return field_dict
104
+
105
+ @classmethod
106
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
107
+ from ..models.problem_errors_item import ProblemErrorsItem # noqa: PLC0415
108
+ from ..models.problem_mfa import ProblemMfa # noqa: PLC0415
109
+
110
+ d = dict(src_dict)
111
+ type_ = check_problem_type(d.pop("type"))
112
+
113
+ title = d.pop("title")
114
+
115
+ status = d.pop("status")
116
+
117
+ detail = d.pop("detail")
118
+
119
+ instance = d.pop("instance")
120
+
121
+ request_id = d.pop("request_id")
122
+
123
+ _errors = d.pop("errors", UNSET)
124
+ errors: list[ProblemErrorsItem] | Unset = UNSET
125
+ if _errors is not UNSET:
126
+ errors = []
127
+ for errors_item_data in _errors:
128
+ errors_item = ProblemErrorsItem.from_dict(errors_item_data)
129
+
130
+ errors.append(errors_item)
131
+
132
+ _mfa = d.pop("mfa", UNSET)
133
+ mfa: ProblemMfa | Unset
134
+ if isinstance(_mfa, Unset):
135
+ mfa = UNSET
136
+ else:
137
+ mfa = ProblemMfa.from_dict(_mfa)
138
+
139
+ problem = cls(
140
+ type_=type_,
141
+ title=title,
142
+ status=status,
143
+ detail=detail,
144
+ instance=instance,
145
+ request_id=request_id,
146
+ errors=errors,
147
+ mfa=mfa,
148
+ )
149
+
150
+ problem.additional_properties = d
151
+ return problem
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,53 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping
6
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
7
+
8
+ from attrs import define as _attrs_define
9
+ from attrs import field as _attrs_field
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+
14
+ T = TypeVar("T", bound="ProblemErrorsItem")
15
+
16
+
17
+ @_attrs_define
18
+ class ProblemErrorsItem:
19
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
20
+ # taskadence: the response's `ETag` (set by the facade on single reads / writes). Not a property of the resource: it is
21
+ # never serialized by `to_dict` nor read by `from_dict`, and it does not take part in equality.
22
+ etag: str | None = _attrs_field(default=None, init=False, repr=False, eq=False)
23
+
24
+ def to_dict(self) -> dict[str, Any]:
25
+
26
+ field_dict: dict[str, Any] = {}
27
+ field_dict.update(self.additional_properties)
28
+
29
+ return field_dict
30
+
31
+ @classmethod
32
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
33
+ d = dict(src_dict)
34
+ problem_errors_item = cls()
35
+
36
+ problem_errors_item.additional_properties = d
37
+ return problem_errors_item
38
+
39
+ @property
40
+ def additional_keys(self) -> list[str]:
41
+ return list(self.additional_properties.keys())
42
+
43
+ def __getitem__(self, key: str) -> Any:
44
+ return self.additional_properties[key]
45
+
46
+ def __setitem__(self, key: str, value: Any) -> None:
47
+ self.additional_properties[key] = value
48
+
49
+ def __delitem__(self, key: str) -> None:
50
+ del self.additional_properties[key]
51
+
52
+ def __contains__(self, key: str) -> bool:
53
+ return key in self.additional_properties
@@ -0,0 +1,109 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from __future__ import annotations
4
+
5
+ from collections.abc import Mapping
6
+ from typing import Any, TypeVar, BinaryIO, TextIO, TYPE_CHECKING, Generator
7
+
8
+ from attrs import define as _attrs_define
9
+ from attrs import field as _attrs_field
10
+
11
+ from ..types import UNSET, Unset
12
+
13
+ from ..models.problem_mfa_reason import check_problem_mfa_reason
14
+ from ..models.problem_mfa_reason import ProblemMfaReason
15
+ from ..models.problem_mfa_required_for import check_problem_mfa_required_for
16
+ from ..models.problem_mfa_required_for import ProblemMfaRequiredFor
17
+ from ..types import UNSET, Unset
18
+ from typing import cast
19
+
20
+
21
+ T = TypeVar("T", bound="ProblemMfa")
22
+
23
+
24
+ @_attrs_define
25
+ class ProblemMfa:
26
+ """On an `mfa-required` problem only: `enrolled` (does the person have an authenticator app set up), `required_for`
27
+ (`all` or `admins`) and `reason` (`org_policy`: the organization's requirement; `step_up`: this action needs a
28
+ second step)
29
+
30
+ Attributes:
31
+ enrolled (bool | Unset):
32
+ required_for (ProblemMfaRequiredFor | Unset):
33
+ reason (ProblemMfaReason | Unset):
34
+ """
35
+
36
+ enrolled: bool | Unset = UNSET
37
+ required_for: ProblemMfaRequiredFor | Unset = UNSET
38
+ reason: ProblemMfaReason | Unset = UNSET
39
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
40
+ # taskadence: the response's `ETag` (set by the facade on single reads / writes). Not a property of the resource: it is
41
+ # never serialized by `to_dict` nor read by `from_dict`, and it does not take part in equality.
42
+ etag: str | None = _attrs_field(default=None, init=False, repr=False, eq=False)
43
+
44
+ def to_dict(self) -> dict[str, Any]:
45
+ enrolled = self.enrolled
46
+
47
+ required_for: str | Unset = UNSET
48
+ if not isinstance(self.required_for, Unset):
49
+ required_for = self.required_for
50
+
51
+ reason: str | Unset = UNSET
52
+ if not isinstance(self.reason, Unset):
53
+ reason = self.reason
54
+
55
+ field_dict: dict[str, Any] = {}
56
+ field_dict.update(self.additional_properties)
57
+ field_dict.update({})
58
+ if enrolled is not UNSET:
59
+ field_dict["enrolled"] = enrolled
60
+ if required_for is not UNSET:
61
+ field_dict["required_for"] = required_for
62
+ if reason is not UNSET:
63
+ field_dict["reason"] = reason
64
+
65
+ return field_dict
66
+
67
+ @classmethod
68
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
69
+ d = dict(src_dict)
70
+ enrolled = d.pop("enrolled", UNSET)
71
+
72
+ _required_for = d.pop("required_for", UNSET)
73
+ required_for: ProblemMfaRequiredFor | Unset
74
+ if isinstance(_required_for, Unset):
75
+ required_for = UNSET
76
+ else:
77
+ required_for = check_problem_mfa_required_for(_required_for)
78
+
79
+ _reason = d.pop("reason", UNSET)
80
+ reason: ProblemMfaReason | Unset
81
+ if isinstance(_reason, Unset):
82
+ reason = UNSET
83
+ else:
84
+ reason = check_problem_mfa_reason(_reason)
85
+
86
+ problem_mfa = cls(
87
+ enrolled=enrolled,
88
+ required_for=required_for,
89
+ reason=reason,
90
+ )
91
+
92
+ problem_mfa.additional_properties = d
93
+ return problem_mfa
94
+
95
+ @property
96
+ def additional_keys(self) -> list[str]:
97
+ return list(self.additional_properties.keys())
98
+
99
+ def __getitem__(self, key: str) -> Any:
100
+ return self.additional_properties[key]
101
+
102
+ def __setitem__(self, key: str, value: Any) -> None:
103
+ self.additional_properties[key] = value
104
+
105
+ def __delitem__(self, key: str) -> None:
106
+ del self.additional_properties[key]
107
+
108
+ def __contains__(self, key: str) -> bool:
109
+ return key in self.additional_properties
@@ -0,0 +1,16 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from typing import Literal
4
+
5
+ ProblemMfaReason = Literal["org_policy", "step_up"]
6
+
7
+ PROBLEM_MFA_REASON_VALUES: set[ProblemMfaReason] = {
8
+ "org_policy",
9
+ "step_up",
10
+ }
11
+
12
+
13
+ def check_problem_mfa_reason(value: str) -> ProblemMfaReason:
14
+ if value in PROBLEM_MFA_REASON_VALUES:
15
+ return value
16
+ raise TypeError(f"Unexpected value {value!r}. Expected one of {PROBLEM_MFA_REASON_VALUES!r}")
@@ -0,0 +1,16 @@
1
+ # GENERATED by scripts/generate.py from spec/openapi.public.json — DO NOT EDIT BY HAND.
2
+ # Change the spec snapshot (or the generator) and run `python scripts/generate.py`.
3
+ from typing import Literal
4
+
5
+ ProblemMfaRequiredFor = Literal["admins", "all"]
6
+
7
+ PROBLEM_MFA_REQUIRED_FOR_VALUES: set[ProblemMfaRequiredFor] = {
8
+ "admins",
9
+ "all",
10
+ }
11
+
12
+
13
+ def check_problem_mfa_required_for(value: str) -> ProblemMfaRequiredFor:
14
+ if value in PROBLEM_MFA_REQUIRED_FOR_VALUES:
15
+ return value
16
+ raise TypeError(f"Unexpected value {value!r}. Expected one of {PROBLEM_MFA_REQUIRED_FOR_VALUES!r}")