skillforge-client 0.4.0__tar.gz → 0.5.0__tar.gz

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 (220) hide show
  1. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/PKG-INFO +3 -3
  2. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/README.md +1 -1
  3. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/pyproject.toml +2 -2
  4. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/pyproject.toml.orig +2 -2
  5. skillforge_client-0.5.0/skillforge_client/api/auth/auth_add_user_role.py +200 -0
  6. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_create_token.py +44 -0
  7. skillforge_client-0.5.0/skillforge_client/api/auth/auth_create_user.py +201 -0
  8. skillforge_client-0.5.0/skillforge_client/api/auth/auth_get_user.py +185 -0
  9. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_grant_application_client_scopes.py +8 -4
  10. skillforge_client-0.5.0/skillforge_client/api/auth/auth_issue_invitation.py +202 -0
  11. skillforge_client-0.5.0/skillforge_client/api/auth/auth_issue_password_reset.py +202 -0
  12. skillforge_client-0.5.0/skillforge_client/api/auth/auth_list_users.py +269 -0
  13. skillforge_client-0.5.0/skillforge_client/api/auth/auth_redeem_password.py +198 -0
  14. skillforge_client-0.5.0/skillforge_client/api/auth/auth_remove_user_role.py +194 -0
  15. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_revoke_application_client_scope.py +20 -5
  16. skillforge_client-0.5.0/skillforge_client/api/auth/auth_revoke_refresh_token.py +198 -0
  17. skillforge_client-0.5.0/skillforge_client/api/auth/auth_revoke_user_sessions.py +179 -0
  18. skillforge_client-0.5.0/skillforge_client/api/auth/auth_update_user.py +227 -0
  19. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_get_party.py +8 -0
  20. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_list_parties.py +8 -0
  21. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/__init__.py +24 -0
  22. skillforge_client-0.5.0/skillforge_client/models/access_token_response.py +133 -0
  23. skillforge_client-0.5.0/skillforge_client/models/action_token_response.py +72 -0
  24. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_response.py +27 -16
  25. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_scope_grant_request.py +15 -2
  26. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/body_auth_create_token.py +68 -4
  27. skillforge_client-0.5.0/skillforge_client/models/grant_mode.py +9 -0
  28. skillforge_client-0.5.0/skillforge_client/models/me_response.py +156 -0
  29. skillforge_client-0.5.0/skillforge_client/models/page_user_account_list_item.py +99 -0
  30. skillforge_client-0.5.0/skillforge_client/models/password_redeem_request.py +70 -0
  31. skillforge_client-0.5.0/skillforge_client/models/refresh_token_revoke_request.py +64 -0
  32. skillforge_client-0.5.0/skillforge_client/models/role.py +11 -0
  33. skillforge_client-0.5.0/skillforge_client/models/user_account_create_request.py +110 -0
  34. skillforge_client-0.5.0/skillforge_client/models/user_account_detail.py +188 -0
  35. skillforge_client-0.5.0/skillforge_client/models/user_account_list_item.py +154 -0
  36. skillforge_client-0.5.0/skillforge_client/models/user_account_role_name.py +8 -0
  37. skillforge_client-0.5.0/skillforge_client/models/user_account_status.py +9 -0
  38. skillforge_client-0.5.0/skillforge_client/models/user_account_update_request.py +93 -0
  39. skillforge_client-0.4.0/skillforge_client/models/access_token_response.py +0 -85
  40. skillforge_client-0.4.0/skillforge_client/models/me_response.py +0 -85
  41. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/__init__.py +0 -0
  42. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/__init__.py +0 -0
  43. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/__init__.py +0 -0
  44. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_create_application_client.py +0 -0
  45. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_create_application_client_secret.py +0 -0
  46. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_get_me.py +0 -0
  47. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_read_application_client.py +0 -0
  48. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_read_application_clients.py +0 -0
  49. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_revoke_application_client_secret.py +0 -0
  50. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/auth/auth_update_application_client.py +0 -0
  51. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/__init__.py +0 -0
  52. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_add_user_to_group.py +0 -0
  53. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_cancel_operation.py +0 -0
  54. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_check_authorization.py +0 -0
  55. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_claim_jobs.py +0 -0
  56. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_commit_student_activation.py +0 -0
  57. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_commit_student_deactivation.py +0 -0
  58. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_commit_student_pop.py +0 -0
  59. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_commit_student_stash.py +0 -0
  60. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_commit_tutor_activation.py +0 -0
  61. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_commit_tutor_deactivation.py +0 -0
  62. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_complete_job.py +0 -0
  63. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_deactivate_discord_account.py +0 -0
  64. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_delete_command_env.py +0 -0
  65. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_fail_job.py +0 -0
  66. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_job_queue_summary.py +0 -0
  67. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_link_discord_account.py +0 -0
  68. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_list_jobs.py +0 -0
  69. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_list_operations.py +0 -0
  70. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_prepare_student_activation.py +0 -0
  71. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_prepare_student_deactivation.py +0 -0
  72. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_prepare_student_pop.py +0 -0
  73. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_prepare_student_stash.py +0 -0
  74. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_prepare_tutor_activation.py +0 -0
  75. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_prepare_tutor_deactivation.py +0 -0
  76. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_job.py +0 -0
  77. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_operation.py +0 -0
  78. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_principal.py +0 -0
  79. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_principals_batch.py +0 -0
  80. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_student_context.py +0 -0
  81. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_student_contexts_batch.py +0 -0
  82. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_tutor_context.py +0 -0
  83. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_read_tutor_contexts_batch.py +0 -0
  84. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_remove_user_from_group.py +0 -0
  85. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_resolve_command_env.py +0 -0
  86. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_upsert_command_env.py +0 -0
  87. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/bot/bot_upsert_discord_user.py +0 -0
  88. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/__init__.py +0 -0
  89. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_add_contact_info.py +0 -0
  90. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_create_company.py +0 -0
  91. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_create_person.py +0 -0
  92. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_create_subject.py +0 -0
  93. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_delete_party.py +0 -0
  94. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_delete_subject.py +0 -0
  95. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_list_relations.py +0 -0
  96. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_list_subjects.py +0 -0
  97. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_put_relation.py +0 -0
  98. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_put_student_role.py +0 -0
  99. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_put_tutor_role.py +0 -0
  100. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_remove_contact_info.py +0 -0
  101. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_remove_relation.py +0 -0
  102. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_remove_student_role.py +0 -0
  103. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_remove_tutor_role.py +0 -0
  104. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_update_company.py +0 -0
  105. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_update_contact_info.py +0 -0
  106. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_update_person.py +0 -0
  107. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/crm/crm_update_subject.py +0 -0
  108. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/__init__.py +0 -0
  109. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_dependencies_health_check.py +0 -0
  110. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_dependency_health_check.py +0 -0
  111. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_health_check.py +0 -0
  112. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_liveness_check.py +0 -0
  113. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_root.py +0 -0
  114. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_worker_health_check.py +0 -0
  115. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/api/system/system_workers_health_check.py +0 -0
  116. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/client.py +0 -0
  117. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/errors.py +0 -0
  118. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_create_request.py +0 -0
  119. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_secret_create_request.py +0 -0
  120. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_secret_response.py +0 -0
  121. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_status.py +0 -0
  122. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/application_client_update_request.py +0 -0
  123. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/authorization_check_request.py +0 -0
  124. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/authorization_check_response.py +0 -0
  125. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/bot_job.py +0 -0
  126. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/bot_job_payload.py +0 -0
  127. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/bot_principal.py +0 -0
  128. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/command_env_channel_response.py +0 -0
  129. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/command_env_kind.py +0 -0
  130. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/command_env_upsert_request.py +0 -0
  131. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/company_create_request.py +0 -0
  132. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/company_detail.py +0 -0
  133. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/company_update_request.py +0 -0
  134. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/contact_info_create_request.py +0 -0
  135. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/contact_info_profile.py +0 -0
  136. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/contact_info_response.py +0 -0
  137. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/contact_info_type.py +0 -0
  138. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/contact_info_update_request.py +0 -0
  139. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/created_client_secret_response.py +0 -0
  140. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/dependencies_health_check_response.py +0 -0
  141. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/dependencies_health_check_response_checks.py +0 -0
  142. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/dependency_health_check_response.py +0 -0
  143. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/dependency_name.py +0 -0
  144. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/discord_account_link_request.py +0 -0
  145. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/discord_account_link_response.py +0 -0
  146. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/discord_account_profile.py +0 -0
  147. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/discord_id_batch_request.py +0 -0
  148. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/discord_user_response.py +0 -0
  149. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/discord_user_upsert_request.py +0 -0
  150. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/error_response.py +0 -0
  151. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/external_accounts_profile.py +0 -0
  152. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/field_error.py +0 -0
  153. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/group_membership_response.py +0 -0
  154. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/health_check_response.py +0 -0
  155. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/health_status.py +0 -0
  156. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_claim_request.py +0 -0
  157. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_detail.py +0 -0
  158. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_detail_payload.py +0 -0
  159. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_fail_request.py +0 -0
  160. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_kind_counts.py +0 -0
  161. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_list_item.py +0 -0
  162. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_queue_summary.py +0 -0
  163. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_response.py +0 -0
  164. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_status.py +0 -0
  165. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/job_status_counts.py +0 -0
  166. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/member_role.py +0 -0
  167. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/microsoft_account_profile.py +0 -0
  168. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operation_cancel_response.py +0 -0
  169. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operation_kind.py +0 -0
  170. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operation_response.py +0 -0
  171. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operation_response_plan.py +0 -0
  172. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operation_status.py +0 -0
  173. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operation_summary.py +0 -0
  174. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/operational_profile.py +0 -0
  175. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/page_application_client_response.py +0 -0
  176. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/page_job_list_item.py +0 -0
  177. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/page_operation_summary.py +0 -0
  178. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/page_party_list_item.py +0 -0
  179. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/page_relation_response.py +0 -0
  180. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/page_subject_response.py +0 -0
  181. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/party_list_item.py +0 -0
  182. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/party_relation_type.py +0 -0
  183. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/party_role.py +0 -0
  184. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/party_type.py +0 -0
  185. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/person_create_request.py +0 -0
  186. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/person_detail.py +0 -0
  187. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/person_profile.py +0 -0
  188. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/person_update_request.py +0 -0
  189. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/preferred_meeting_tool.py +0 -0
  190. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/principal_batch.py +0 -0
  191. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/relation_direction.py +0 -0
  192. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/relation_profile.py +0 -0
  193. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/relation_profile_direction.py +0 -0
  194. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/relation_response.py +0 -0
  195. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_activation_commit_request.py +0 -0
  196. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_activation_prepare_request.py +0 -0
  197. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_channel_state.py +0 -0
  198. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_context.py +0 -0
  199. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_context_batch.py +0 -0
  200. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_role.py +0 -0
  201. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/student_role_request.py +0 -0
  202. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/subject_create_request.py +0 -0
  203. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/subject_response.py +0 -0
  204. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/subject_update_request.py +0 -0
  205. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/system_health_check_response.py +0 -0
  206. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/transition_commit_response.py +0 -0
  207. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/transition_prepare_response.py +0 -0
  208. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/transition_prepare_response_plan.py +0 -0
  209. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/tutor_activation_commit_request.py +0 -0
  210. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/tutor_activation_prepare_request.py +0 -0
  211. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/tutor_context.py +0 -0
  212. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/tutor_context_batch.py +0 -0
  213. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/tutor_role.py +0 -0
  214. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/tutor_role_request.py +0 -0
  215. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/worker_health_check_response.py +0 -0
  216. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/worker_name.py +0 -0
  217. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/workers_health_check_response.py +0 -0
  218. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/models/workers_health_check_response_checks.py +0 -0
  219. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/py.typed +0 -0
  220. {skillforge_client-0.4.0 → skillforge_client-0.5.0}/skillforge_client/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: skillforge-client
3
- Version: 0.4.0
3
+ Version: 0.5.0
4
4
  Summary: Official Python client for the Skillforge API.
5
5
  Keywords: skillforge,api,client,openapi
6
6
  Author: Leon Weimann
@@ -15,7 +15,7 @@ Requires-Dist: attrs>=22.2.0
15
15
  Requires-Python: >=3.11
16
16
  Project-URL: Repository, https://github.com/Nachhilfe-Leon-Weimann/skillforge
17
17
  Project-URL: Issues, https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues
18
- Project-URL: OpenAPI contract, https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.4.0/openapi.json
18
+ Project-URL: OpenAPI contract, https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.5.0/openapi.json
19
19
  Description-Content-Type: text/markdown
20
20
 
21
21
  # Skillforge Python Client
@@ -77,7 +77,7 @@ Generated request and response models are available from `skillforge_client.mode
77
77
 
78
78
  ## Versioning and source
79
79
 
80
- Client versions follow Skillforge releases. This package was generated from the [`openapi.json`](https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.4.0/openapi.json) contract for Skillforge v0.4.0; generated source is not maintained by hand.
80
+ Client versions follow Skillforge releases. This package was generated from the [`openapi.json`](https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.5.0/openapi.json) contract for Skillforge v0.5.0; generated source is not maintained by hand.
81
81
 
82
82
  - [Skillforge repository](https://github.com/Nachhilfe-Leon-Weimann/skillforge)
83
83
  - [Issue tracker](https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues)
@@ -57,7 +57,7 @@ Generated request and response models are available from `skillforge_client.mode
57
57
 
58
58
  ## Versioning and source
59
59
 
60
- Client versions follow Skillforge releases. This package was generated from the [`openapi.json`](https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.4.0/openapi.json) contract for Skillforge v0.4.0; generated source is not maintained by hand.
60
+ Client versions follow Skillforge releases. This package was generated from the [`openapi.json`](https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.5.0/openapi.json) contract for Skillforge v0.5.0; generated source is not maintained by hand.
61
61
 
62
62
  - [Skillforge repository](https://github.com/Nachhilfe-Leon-Weimann/skillforge)
63
63
  - [Issue tracker](https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "skillforge-client"
3
- version = "0.4.0"
3
+ version = "0.5.0"
4
4
  description = "Official Python client for the Skillforge API."
5
5
  requires-python = ">=3.11"
6
6
  readme = "README.md"
@@ -29,7 +29,7 @@ email = "coding@leonweimann.de"
29
29
  [project.urls]
30
30
  Repository = "https://github.com/Nachhilfe-Leon-Weimann/skillforge"
31
31
  Issues = "https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues"
32
- "OpenAPI contract" = "https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.4.0/openapi.json"
32
+ "OpenAPI contract" = "https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.5.0/openapi.json"
33
33
 
34
34
  [tool.uv.build-backend]
35
35
  module-name = "skillforge_client"
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "skillforge-client"
3
- version = "0.4.0"
3
+ version = "0.5.0"
4
4
  description = "Official Python client for the Skillforge API."
5
5
  authors = [{ name = "Leon Weimann", email = "coding@leonweimann.de" }]
6
6
  requires-python = ">=3.11"
@@ -21,7 +21,7 @@ dependencies = [
21
21
  [project.urls]
22
22
  Repository = "https://github.com/Nachhilfe-Leon-Weimann/skillforge"
23
23
  Issues = "https://github.com/Nachhilfe-Leon-Weimann/skillforge/issues"
24
- "OpenAPI contract" = "https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.4.0/openapi.json"
24
+ "OpenAPI contract" = "https://github.com/Nachhilfe-Leon-Weimann/skillforge/blob/v0.5.0/openapi.json"
25
25
 
26
26
  [tool.uv.build-backend]
27
27
  module-name = "skillforge_client"
@@ -0,0 +1,200 @@
1
+ from http import HTTPStatus
2
+ from typing import Any
3
+ from urllib.parse import quote
4
+ from uuid import UUID
5
+
6
+ import httpx
7
+
8
+ from ... import errors
9
+ from ...client import AuthenticatedClient, Client
10
+ from ...models.error_response import ErrorResponse
11
+ from ...models.user_account_detail import UserAccountDetail
12
+ from ...models.user_account_role_name import UserAccountRoleName
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ user_id: UUID,
18
+ role: UserAccountRoleName,
19
+ ) -> dict[str, Any]:
20
+
21
+ _kwargs: dict[str, Any] = {
22
+ "method": "put",
23
+ "url": "/api/v1/auth/users/{user_id}/roles/{role}".format(
24
+ user_id=quote(str(user_id), safe=""),
25
+ role=quote(str(role), safe=""),
26
+ ),
27
+ }
28
+
29
+ return _kwargs
30
+
31
+
32
+ def _parse_response(
33
+ *, client: AuthenticatedClient | Client, response: httpx.Response
34
+ ) -> ErrorResponse | UserAccountDetail | None:
35
+ if response.status_code == 200:
36
+ response_200 = UserAccountDetail.from_dict(response.json())
37
+
38
+ return response_200
39
+
40
+ if response.status_code == 401:
41
+ response_401 = ErrorResponse.from_dict(response.json())
42
+
43
+ return response_401
44
+
45
+ if response.status_code == 403:
46
+ response_403 = ErrorResponse.from_dict(response.json())
47
+
48
+ return response_403
49
+
50
+ if response.status_code == 404:
51
+ response_404 = ErrorResponse.from_dict(response.json())
52
+
53
+ return response_404
54
+
55
+ if response.status_code == 422:
56
+ response_422 = ErrorResponse.from_dict(response.json())
57
+
58
+ return response_422
59
+
60
+ if client.raise_on_unexpected_status:
61
+ raise errors.UnexpectedStatus(response.status_code, response.content)
62
+ else:
63
+ return None
64
+
65
+
66
+ def _build_response(
67
+ *, client: AuthenticatedClient | Client, response: httpx.Response
68
+ ) -> Response[ErrorResponse | UserAccountDetail]:
69
+ return Response(
70
+ status_code=HTTPStatus(response.status_code),
71
+ content=response.content,
72
+ headers=response.headers,
73
+ parsed=_parse_response(client=client, response=response),
74
+ )
75
+
76
+
77
+ def sync_detailed(
78
+ user_id: UUID,
79
+ role: UserAccountRoleName,
80
+ *,
81
+ client: AuthenticatedClient,
82
+ ) -> Response[ErrorResponse | UserAccountDetail]:
83
+ """Add User Role
84
+
85
+ Give the account a stored role. Idempotent: a role it already holds changes nothing.
86
+
87
+ Args:
88
+ user_id (UUID): ID of the user account.
89
+ role (UserAccountRoleName):
90
+
91
+ Raises:
92
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
93
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
94
+
95
+ Returns:
96
+ Response[ErrorResponse | UserAccountDetail]
97
+ """
98
+
99
+ kwargs = _get_kwargs(
100
+ user_id=user_id,
101
+ role=role,
102
+ )
103
+
104
+ response = client.get_httpx_client().request(
105
+ **kwargs,
106
+ )
107
+
108
+ return _build_response(client=client, response=response)
109
+
110
+
111
+ def sync(
112
+ user_id: UUID,
113
+ role: UserAccountRoleName,
114
+ *,
115
+ client: AuthenticatedClient,
116
+ ) -> ErrorResponse | UserAccountDetail | None:
117
+ """Add User Role
118
+
119
+ Give the account a stored role. Idempotent: a role it already holds changes nothing.
120
+
121
+ Args:
122
+ user_id (UUID): ID of the user account.
123
+ role (UserAccountRoleName):
124
+
125
+ Raises:
126
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
127
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
128
+
129
+ Returns:
130
+ ErrorResponse | UserAccountDetail
131
+ """
132
+
133
+ return sync_detailed(
134
+ user_id=user_id,
135
+ role=role,
136
+ client=client,
137
+ ).parsed
138
+
139
+
140
+ async def asyncio_detailed(
141
+ user_id: UUID,
142
+ role: UserAccountRoleName,
143
+ *,
144
+ client: AuthenticatedClient,
145
+ ) -> Response[ErrorResponse | UserAccountDetail]:
146
+ """Add User Role
147
+
148
+ Give the account a stored role. Idempotent: a role it already holds changes nothing.
149
+
150
+ Args:
151
+ user_id (UUID): ID of the user account.
152
+ role (UserAccountRoleName):
153
+
154
+ Raises:
155
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
156
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
157
+
158
+ Returns:
159
+ Response[ErrorResponse | UserAccountDetail]
160
+ """
161
+
162
+ kwargs = _get_kwargs(
163
+ user_id=user_id,
164
+ role=role,
165
+ )
166
+
167
+ response = await client.get_async_httpx_client().request(**kwargs)
168
+
169
+ return _build_response(client=client, response=response)
170
+
171
+
172
+ async def asyncio(
173
+ user_id: UUID,
174
+ role: UserAccountRoleName,
175
+ *,
176
+ client: AuthenticatedClient,
177
+ ) -> ErrorResponse | UserAccountDetail | None:
178
+ """Add User Role
179
+
180
+ Give the account a stored role. Idempotent: a role it already holds changes nothing.
181
+
182
+ Args:
183
+ user_id (UUID): ID of the user account.
184
+ role (UserAccountRoleName):
185
+
186
+ Raises:
187
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
188
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
189
+
190
+ Returns:
191
+ ErrorResponse | UserAccountDetail
192
+ """
193
+
194
+ return (
195
+ await asyncio_detailed(
196
+ user_id=user_id,
197
+ role=role,
198
+ client=client,
199
+ )
200
+ ).parsed
@@ -76,6 +76,17 @@ def sync_detailed(
76
76
  ) -> Response[AccessTokenResponse | ErrorResponse]:
77
77
  """Create Token
78
78
 
79
+ Issue an access token.
80
+
81
+ The client authenticates for every grant, with HTTP Basic or `client_id` / `client_secret` in the
82
+ form.
83
+ `client_credentials` issues a token of the client's own. `password` logs a person in and opens a
84
+ session;
85
+ `refresh_token` renews it and replaces its refresh token. Both need `auth:users:login` granted to
86
+ the client
87
+ in `application` mode. Every failure of the person's credentials or refresh token is the same
88
+ `invalid_grant`.
89
+
79
90
  Args:
80
91
  body (BodyAuthCreateToken):
81
92
 
@@ -105,6 +116,17 @@ def sync(
105
116
  ) -> AccessTokenResponse | ErrorResponse | None:
106
117
  """Create Token
107
118
 
119
+ Issue an access token.
120
+
121
+ The client authenticates for every grant, with HTTP Basic or `client_id` / `client_secret` in the
122
+ form.
123
+ `client_credentials` issues a token of the client's own. `password` logs a person in and opens a
124
+ session;
125
+ `refresh_token` renews it and replaces its refresh token. Both need `auth:users:login` granted to
126
+ the client
127
+ in `application` mode. Every failure of the person's credentials or refresh token is the same
128
+ `invalid_grant`.
129
+
108
130
  Args:
109
131
  body (BodyAuthCreateToken):
110
132
 
@@ -129,6 +151,17 @@ async def asyncio_detailed(
129
151
  ) -> Response[AccessTokenResponse | ErrorResponse]:
130
152
  """Create Token
131
153
 
154
+ Issue an access token.
155
+
156
+ The client authenticates for every grant, with HTTP Basic or `client_id` / `client_secret` in the
157
+ form.
158
+ `client_credentials` issues a token of the client's own. `password` logs a person in and opens a
159
+ session;
160
+ `refresh_token` renews it and replaces its refresh token. Both need `auth:users:login` granted to
161
+ the client
162
+ in `application` mode. Every failure of the person's credentials or refresh token is the same
163
+ `invalid_grant`.
164
+
132
165
  Args:
133
166
  body (BodyAuthCreateToken):
134
167
 
@@ -156,6 +189,17 @@ async def asyncio(
156
189
  ) -> AccessTokenResponse | ErrorResponse | None:
157
190
  """Create Token
158
191
 
192
+ Issue an access token.
193
+
194
+ The client authenticates for every grant, with HTTP Basic or `client_id` / `client_secret` in the
195
+ form.
196
+ `client_credentials` issues a token of the client's own. `password` logs a person in and opens a
197
+ session;
198
+ `refresh_token` renews it and replaces its refresh token. Both need `auth:users:login` granted to
199
+ the client
200
+ in `application` mode. Every failure of the person's credentials or refresh token is the same
201
+ `invalid_grant`.
202
+
159
203
  Args:
160
204
  body (BodyAuthCreateToken):
161
205
 
@@ -0,0 +1,201 @@
1
+ from http import HTTPStatus
2
+ from typing import Any
3
+
4
+ import httpx
5
+
6
+ from ... import errors
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...models.error_response import ErrorResponse
9
+ from ...models.user_account_create_request import UserAccountCreateRequest
10
+ from ...models.user_account_detail import UserAccountDetail
11
+ from ...types import Response
12
+
13
+
14
+ def _get_kwargs(
15
+ *,
16
+ body: UserAccountCreateRequest,
17
+ ) -> dict[str, Any]:
18
+ headers: dict[str, Any] = {}
19
+
20
+ _kwargs: dict[str, Any] = {
21
+ "method": "post",
22
+ "url": "/api/v1/auth/users",
23
+ }
24
+
25
+ _kwargs["json"] = body.to_dict()
26
+
27
+ headers["Content-Type"] = "application/json"
28
+
29
+ _kwargs["headers"] = headers
30
+ return _kwargs
31
+
32
+
33
+ def _parse_response(
34
+ *, client: AuthenticatedClient | Client, response: httpx.Response
35
+ ) -> ErrorResponse | UserAccountDetail | None:
36
+ if response.status_code == 201:
37
+ response_201 = UserAccountDetail.from_dict(response.json())
38
+
39
+ return response_201
40
+
41
+ if response.status_code == 401:
42
+ response_401 = ErrorResponse.from_dict(response.json())
43
+
44
+ return response_401
45
+
46
+ if response.status_code == 403:
47
+ response_403 = ErrorResponse.from_dict(response.json())
48
+
49
+ return response_403
50
+
51
+ if response.status_code == 409:
52
+ response_409 = ErrorResponse.from_dict(response.json())
53
+
54
+ return response_409
55
+
56
+ if response.status_code == 422:
57
+ response_422 = ErrorResponse.from_dict(response.json())
58
+
59
+ return response_422
60
+
61
+ if client.raise_on_unexpected_status:
62
+ raise errors.UnexpectedStatus(response.status_code, response.content)
63
+ else:
64
+ return None
65
+
66
+
67
+ def _build_response(
68
+ *, client: AuthenticatedClient | Client, response: httpx.Response
69
+ ) -> Response[ErrorResponse | UserAccountDetail]:
70
+ return Response(
71
+ status_code=HTTPStatus(response.status_code),
72
+ content=response.content,
73
+ headers=response.headers,
74
+ parsed=_parse_response(client=client, response=response),
75
+ )
76
+
77
+
78
+ def sync_detailed(
79
+ *,
80
+ client: AuthenticatedClient,
81
+ body: UserAccountCreateRequest,
82
+ ) -> Response[ErrorResponse | UserAccountDetail]:
83
+ """Create User
84
+
85
+ Create an `active` account for a person party.
86
+
87
+ The response carries no token: set up the password login with `POST /users/{user_id}/invitation`.
88
+
89
+ Args:
90
+ body (UserAccountCreateRequest): Body of `POST /users`: the person party an account is
91
+ created for.
92
+
93
+ Raises:
94
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
95
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
96
+
97
+ Returns:
98
+ Response[ErrorResponse | UserAccountDetail]
99
+ """
100
+
101
+ kwargs = _get_kwargs(
102
+ body=body,
103
+ )
104
+
105
+ response = client.get_httpx_client().request(
106
+ **kwargs,
107
+ )
108
+
109
+ return _build_response(client=client, response=response)
110
+
111
+
112
+ def sync(
113
+ *,
114
+ client: AuthenticatedClient,
115
+ body: UserAccountCreateRequest,
116
+ ) -> ErrorResponse | UserAccountDetail | None:
117
+ """Create User
118
+
119
+ Create an `active` account for a person party.
120
+
121
+ The response carries no token: set up the password login with `POST /users/{user_id}/invitation`.
122
+
123
+ Args:
124
+ body (UserAccountCreateRequest): Body of `POST /users`: the person party an account is
125
+ created for.
126
+
127
+ Raises:
128
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
129
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
130
+
131
+ Returns:
132
+ ErrorResponse | UserAccountDetail
133
+ """
134
+
135
+ return sync_detailed(
136
+ client=client,
137
+ body=body,
138
+ ).parsed
139
+
140
+
141
+ async def asyncio_detailed(
142
+ *,
143
+ client: AuthenticatedClient,
144
+ body: UserAccountCreateRequest,
145
+ ) -> Response[ErrorResponse | UserAccountDetail]:
146
+ """Create User
147
+
148
+ Create an `active` account for a person party.
149
+
150
+ The response carries no token: set up the password login with `POST /users/{user_id}/invitation`.
151
+
152
+ Args:
153
+ body (UserAccountCreateRequest): Body of `POST /users`: the person party an account is
154
+ created for.
155
+
156
+ Raises:
157
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
158
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
159
+
160
+ Returns:
161
+ Response[ErrorResponse | UserAccountDetail]
162
+ """
163
+
164
+ kwargs = _get_kwargs(
165
+ body=body,
166
+ )
167
+
168
+ response = await client.get_async_httpx_client().request(**kwargs)
169
+
170
+ return _build_response(client=client, response=response)
171
+
172
+
173
+ async def asyncio(
174
+ *,
175
+ client: AuthenticatedClient,
176
+ body: UserAccountCreateRequest,
177
+ ) -> ErrorResponse | UserAccountDetail | None:
178
+ """Create User
179
+
180
+ Create an `active` account for a person party.
181
+
182
+ The response carries no token: set up the password login with `POST /users/{user_id}/invitation`.
183
+
184
+ Args:
185
+ body (UserAccountCreateRequest): Body of `POST /users`: the person party an account is
186
+ created for.
187
+
188
+ Raises:
189
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
190
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
191
+
192
+ Returns:
193
+ ErrorResponse | UserAccountDetail
194
+ """
195
+
196
+ return (
197
+ await asyncio_detailed(
198
+ client=client,
199
+ body=body,
200
+ )
201
+ ).parsed