skillforge-client 0.3.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 (147) hide show
  1. skillforge_client/__init__.py +8 -0
  2. skillforge_client/api/__init__.py +1 -0
  3. skillforge_client/api/auth/__init__.py +1 -0
  4. skillforge_client/api/auth/create_application_client_endpoint_api_v1_auth_clients_post.py +166 -0
  5. skillforge_client/api/auth/create_application_client_secret_endpoint_api_v1_auth_clients_client_id_secrets_post.py +182 -0
  6. skillforge_client/api/auth/create_token_api_v1_auth_token_post.py +165 -0
  7. skillforge_client/api/auth/grant_application_client_scopes_endpoint_api_v1_auth_clients_client_id_scopes_post.py +182 -0
  8. skillforge_client/api/auth/read_application_client_api_v1_auth_clients_client_id_get.py +161 -0
  9. skillforge_client/api/auth/read_application_clients_api_v1_auth_clients_get.py +133 -0
  10. skillforge_client/api/auth/revoke_application_client_scope_endpoint_api_v1_auth_clients_client_id_scopes_scope_key_delete.py +173 -0
  11. skillforge_client/api/auth/revoke_application_client_secret_endpoint_api_v1_auth_clients_client_id_secrets_secret_id_delete.py +174 -0
  12. skillforge_client/api/auth/update_application_client_endpoint_api_v1_auth_clients_client_id_patch.py +182 -0
  13. skillforge_client/api/bot/__init__.py +1 -0
  14. skillforge_client/api/bot/add_user_to_group_endpoint_api_v1_bot_users_discord_id_groups_group_key_put.py +199 -0
  15. skillforge_client/api/bot/cancel_operation_endpoint_api_v1_bot_operations_operation_id_cancel_post.py +203 -0
  16. skillforge_client/api/bot/check_authorization_endpoint_api_v1_bot_authz_check_post.py +206 -0
  17. skillforge_client/api/bot/claim_jobs_endpoint_api_v1_bot_jobs_claim_post.py +210 -0
  18. skillforge_client/api/bot/commit_student_activation_endpoint_api_v1_bot_students_activations_operation_id_commit_post.py +204 -0
  19. skillforge_client/api/bot/commit_student_deactivation_endpoint_api_v1_bot_students_guild_id_student_discord_id_deactivate_operation_id_commit_post.py +211 -0
  20. skillforge_client/api/bot/commit_student_pop_endpoint_api_v1_bot_students_guild_id_student_discord_id_pop_operation_id_commit_post.py +211 -0
  21. skillforge_client/api/bot/commit_student_stash_endpoint_api_v1_bot_students_guild_id_student_discord_id_stash_operation_id_commit_post.py +211 -0
  22. skillforge_client/api/bot/commit_tutor_activation_endpoint_api_v1_bot_tutors_activations_operation_id_commit_post.py +204 -0
  23. skillforge_client/api/bot/commit_tutor_deactivation_endpoint_api_v1_bot_tutors_guild_id_tutor_discord_id_deactivate_operation_id_commit_post.py +211 -0
  24. skillforge_client/api/bot/complete_job_endpoint_api_v1_bot_jobs_job_id_complete_post.py +183 -0
  25. skillforge_client/api/bot/deactivate_discord_account_endpoint_api_v1_bot_users_discord_id_account_delete.py +197 -0
  26. skillforge_client/api/bot/delete_command_env_endpoint_api_v1_bot_command_envs_guild_id_channel_id_kind_delete.py +204 -0
  27. skillforge_client/api/bot/fail_job_endpoint_api_v1_bot_jobs_job_id_fail_post.py +228 -0
  28. skillforge_client/api/bot/job_queue_summary_endpoint_api_v1_bot_jobs_summary_get.py +202 -0
  29. skillforge_client/api/bot/link_discord_account_endpoint_api_v1_bot_users_discord_id_account_put.py +227 -0
  30. skillforge_client/api/bot/list_jobs_endpoint_api_v1_bot_jobs_get.py +243 -0
  31. skillforge_client/api/bot/list_operations_endpoint_api_v1_bot_operations_get.py +302 -0
  32. skillforge_client/api/bot/prepare_student_activation_endpoint_api_v1_bot_students_activations_prepare_post.py +181 -0
  33. skillforge_client/api/bot/prepare_student_deactivation_endpoint_api_v1_bot_students_guild_id_student_discord_id_deactivate_prepare_post.py +190 -0
  34. skillforge_client/api/bot/prepare_student_pop_endpoint_api_v1_bot_students_guild_id_student_discord_id_pop_prepare_post.py +190 -0
  35. skillforge_client/api/bot/prepare_student_stash_endpoint_api_v1_bot_students_guild_id_student_discord_id_stash_prepare_post.py +190 -0
  36. skillforge_client/api/bot/prepare_tutor_activation_endpoint_api_v1_bot_tutors_activations_prepare_post.py +181 -0
  37. skillforge_client/api/bot/prepare_tutor_deactivation_endpoint_api_v1_bot_tutors_guild_id_tutor_discord_id_deactivate_prepare_post.py +190 -0
  38. skillforge_client/api/bot/read_job_api_v1_bot_jobs_job_id_get.py +186 -0
  39. skillforge_client/api/bot/read_operation_api_v1_bot_operations_operation_id_get.py +186 -0
  40. skillforge_client/api/bot/read_principal_api_v1_bot_runtime_principals_discord_id_get.py +177 -0
  41. skillforge_client/api/bot/read_principals_batch_api_v1_bot_runtime_principals_batch_post.py +189 -0
  42. skillforge_client/api/bot/read_student_context_api_v1_bot_runtime_students_guild_id_discord_id_get.py +191 -0
  43. skillforge_client/api/bot/read_student_contexts_batch_api_v1_bot_runtime_students_guild_id_batch_post.py +205 -0
  44. skillforge_client/api/bot/read_tutor_context_api_v1_bot_runtime_tutors_guild_id_discord_id_get.py +191 -0
  45. skillforge_client/api/bot/read_tutor_contexts_batch_api_v1_bot_runtime_tutors_guild_id_batch_post.py +205 -0
  46. skillforge_client/api/bot/remove_user_from_group_endpoint_api_v1_bot_users_discord_id_groups_group_key_delete.py +197 -0
  47. skillforge_client/api/bot/resolve_command_env_endpoint_api_v1_bot_runtime_command_envs_resolve_get.py +234 -0
  48. skillforge_client/api/bot/upsert_command_env_endpoint_api_v1_bot_command_envs_put.py +181 -0
  49. skillforge_client/api/bot/upsert_discord_user_endpoint_api_v1_bot_users_discord_id_put.py +213 -0
  50. skillforge_client/api/default/__init__.py +1 -0
  51. skillforge_client/api/default/root_get.py +81 -0
  52. skillforge_client/api/system/__init__.py +1 -0
  53. skillforge_client/api/system/dependencies_health_check_health_dependencies_get.py +136 -0
  54. skillforge_client/api/system/dependency_health_check_health_dependencies_dependency_name_get.py +170 -0
  55. skillforge_client/api/system/liveness_check_health_live_get.py +132 -0
  56. skillforge_client/api/system/system_health_check_health_get.py +136 -0
  57. skillforge_client/api/system/worker_health_check_health_workers_worker_name_get.py +170 -0
  58. skillforge_client/api/system/workers_health_check_health_workers_get.py +136 -0
  59. skillforge_client/client.py +268 -0
  60. skillforge_client/errors.py +16 -0
  61. skillforge_client/models/__init__.py +167 -0
  62. skillforge_client/models/access_token_response.py +85 -0
  63. skillforge_client/models/application_client_create_request.py +91 -0
  64. skillforge_client/models/application_client_response.py +149 -0
  65. skillforge_client/models/application_client_scope_grant_request.py +61 -0
  66. skillforge_client/models/application_client_secret_create_request.py +104 -0
  67. skillforge_client/models/application_client_secret_response.py +160 -0
  68. skillforge_client/models/application_client_status.py +9 -0
  69. skillforge_client/models/application_client_update_request.py +124 -0
  70. skillforge_client/models/authorization_check_request.py +78 -0
  71. skillforge_client/models/authorization_check_response.py +61 -0
  72. skillforge_client/models/body_create_token_api_v1_auth_token_post.py +123 -0
  73. skillforge_client/models/bot_job.py +119 -0
  74. skillforge_client/models/bot_job_payload.py +47 -0
  75. skillforge_client/models/bot_principal.py +148 -0
  76. skillforge_client/models/command_env_channel_response.py +100 -0
  77. skillforge_client/models/command_env_kind.py +9 -0
  78. skillforge_client/models/command_env_upsert_request.py +100 -0
  79. skillforge_client/models/contact_info_profile.py +92 -0
  80. skillforge_client/models/contact_info_type.py +9 -0
  81. skillforge_client/models/created_client_secret_response.py +75 -0
  82. skillforge_client/models/dependencies_health_check_response.py +77 -0
  83. skillforge_client/models/dependencies_health_check_response_checks.py +56 -0
  84. skillforge_client/models/dependency_health_check_response.py +72 -0
  85. skillforge_client/models/dependency_name.py +8 -0
  86. skillforge_client/models/discord_account_link_request.py +82 -0
  87. skillforge_client/models/discord_account_link_response.py +86 -0
  88. skillforge_client/models/discord_account_profile.py +77 -0
  89. skillforge_client/models/discord_id_batch_request.py +62 -0
  90. skillforge_client/models/discord_user_response.py +87 -0
  91. skillforge_client/models/discord_user_upsert_request.py +81 -0
  92. skillforge_client/models/error_response.py +61 -0
  93. skillforge_client/models/external_accounts_profile.py +124 -0
  94. skillforge_client/models/group_membership_response.py +69 -0
  95. skillforge_client/models/health_check_response.py +63 -0
  96. skillforge_client/models/health_status.py +10 -0
  97. skillforge_client/models/http_validation_error.py +79 -0
  98. skillforge_client/models/job_claim_request.py +113 -0
  99. skillforge_client/models/job_detail.py +239 -0
  100. skillforge_client/models/job_detail_payload.py +47 -0
  101. skillforge_client/models/job_fail_request.py +82 -0
  102. skillforge_client/models/job_kind_counts.py +92 -0
  103. skillforge_client/models/job_list_item.py +225 -0
  104. skillforge_client/models/job_page.py +100 -0
  105. skillforge_client/models/job_queue_summary.py +106 -0
  106. skillforge_client/models/job_response.py +187 -0
  107. skillforge_client/models/job_status.py +11 -0
  108. skillforge_client/models/job_status_counts.py +86 -0
  109. skillforge_client/models/member_role.py +10 -0
  110. skillforge_client/models/microsoft_account_profile.py +61 -0
  111. skillforge_client/models/operation_cancel_response.py +108 -0
  112. skillforge_client/models/operation_kind.py +13 -0
  113. skillforge_client/models/operation_page.py +100 -0
  114. skillforge_client/models/operation_response.py +257 -0
  115. skillforge_client/models/operation_response_plan.py +47 -0
  116. skillforge_client/models/operation_status.py +12 -0
  117. skillforge_client/models/operation_summary.py +243 -0
  118. skillforge_client/models/operational_profile.py +178 -0
  119. skillforge_client/models/party_relation_type.py +10 -0
  120. skillforge_client/models/person_profile.py +69 -0
  121. skillforge_client/models/principal_batch.py +84 -0
  122. skillforge_client/models/relation_profile.py +81 -0
  123. skillforge_client/models/relation_profile_direction.py +9 -0
  124. skillforge_client/models/student_activation_commit_request.py +61 -0
  125. skillforge_client/models/student_activation_prepare_request.py +77 -0
  126. skillforge_client/models/student_channel_state.py +9 -0
  127. skillforge_client/models/student_context.py +140 -0
  128. skillforge_client/models/student_context_batch.py +83 -0
  129. skillforge_client/models/system_health_check_response.py +87 -0
  130. skillforge_client/models/transition_commit_response.py +108 -0
  131. skillforge_client/models/transition_prepare_response.py +95 -0
  132. skillforge_client/models/transition_prepare_response_plan.py +47 -0
  133. skillforge_client/models/tutor_activation_commit_request.py +69 -0
  134. skillforge_client/models/tutor_activation_prepare_request.py +69 -0
  135. skillforge_client/models/tutor_context.py +99 -0
  136. skillforge_client/models/tutor_context_batch.py +83 -0
  137. skillforge_client/models/validation_error.py +123 -0
  138. skillforge_client/models/validation_error_context.py +47 -0
  139. skillforge_client/models/worker_health_check_response.py +72 -0
  140. skillforge_client/models/worker_name.py +8 -0
  141. skillforge_client/models/workers_health_check_response.py +77 -0
  142. skillforge_client/models/workers_health_check_response_checks.py +56 -0
  143. skillforge_client/py.typed +1 -0
  144. skillforge_client/types.py +54 -0
  145. skillforge_client-0.3.0.dist-info/METADATA +83 -0
  146. skillforge_client-0.3.0.dist-info/RECORD +147 -0
  147. skillforge_client-0.3.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,211 @@
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.http_validation_error import HTTPValidationError
12
+ from ...models.transition_commit_response import TransitionCommitResponse
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ guild_id: int,
18
+ student_discord_id: int,
19
+ operation_id: UUID,
20
+ ) -> dict[str, Any]:
21
+
22
+ _kwargs: dict[str, Any] = {
23
+ "method": "post",
24
+ "url": "/api/v1/bot/students/{guild_id}/{student_discord_id}/deactivate/{operation_id}/commit".format(
25
+ guild_id=quote(str(guild_id), safe=""),
26
+ student_discord_id=quote(str(student_discord_id), safe=""),
27
+ operation_id=quote(str(operation_id), safe=""),
28
+ ),
29
+ }
30
+
31
+ return _kwargs
32
+
33
+
34
+ def _parse_response(
35
+ *, client: AuthenticatedClient | Client, response: httpx.Response
36
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
37
+ if response.status_code == 200:
38
+ response_200 = TransitionCommitResponse.from_dict(response.json())
39
+
40
+ return response_200
41
+
42
+ if response.status_code == 401:
43
+ response_401 = ErrorResponse.from_dict(response.json())
44
+
45
+ return response_401
46
+
47
+ if response.status_code == 403:
48
+ response_403 = ErrorResponse.from_dict(response.json())
49
+
50
+ return response_403
51
+
52
+ if response.status_code == 404:
53
+ response_404 = ErrorResponse.from_dict(response.json())
54
+
55
+ return response_404
56
+
57
+ if response.status_code == 409:
58
+ response_409 = ErrorResponse.from_dict(response.json())
59
+
60
+ return response_409
61
+
62
+ if response.status_code == 422:
63
+ response_422 = HTTPValidationError.from_dict(response.json())
64
+
65
+ return response_422
66
+
67
+ if client.raise_on_unexpected_status:
68
+ raise errors.UnexpectedStatus(response.status_code, response.content)
69
+ else:
70
+ return None
71
+
72
+
73
+ def _build_response(
74
+ *, client: AuthenticatedClient | Client, response: httpx.Response
75
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
76
+ return Response(
77
+ status_code=HTTPStatus(response.status_code),
78
+ content=response.content,
79
+ headers=response.headers,
80
+ parsed=_parse_response(client=client, response=response),
81
+ )
82
+
83
+
84
+ def sync_detailed(
85
+ guild_id: int,
86
+ student_discord_id: int,
87
+ operation_id: UUID,
88
+ *,
89
+ client: AuthenticatedClient,
90
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
91
+ """Commit Student Deactivation Endpoint
92
+
93
+ Args:
94
+ guild_id (int):
95
+ student_discord_id (int):
96
+ operation_id (UUID):
97
+
98
+ Raises:
99
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
100
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
101
+
102
+ Returns:
103
+ Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]
104
+ """
105
+
106
+ kwargs = _get_kwargs(
107
+ guild_id=guild_id,
108
+ student_discord_id=student_discord_id,
109
+ operation_id=operation_id,
110
+ )
111
+
112
+ response = client.get_httpx_client().request(
113
+ **kwargs,
114
+ )
115
+
116
+ return _build_response(client=client, response=response)
117
+
118
+
119
+ def sync(
120
+ guild_id: int,
121
+ student_discord_id: int,
122
+ operation_id: UUID,
123
+ *,
124
+ client: AuthenticatedClient,
125
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
126
+ """Commit Student Deactivation Endpoint
127
+
128
+ Args:
129
+ guild_id (int):
130
+ student_discord_id (int):
131
+ operation_id (UUID):
132
+
133
+ Raises:
134
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
135
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
136
+
137
+ Returns:
138
+ ErrorResponse | HTTPValidationError | TransitionCommitResponse
139
+ """
140
+
141
+ return sync_detailed(
142
+ guild_id=guild_id,
143
+ student_discord_id=student_discord_id,
144
+ operation_id=operation_id,
145
+ client=client,
146
+ ).parsed
147
+
148
+
149
+ async def asyncio_detailed(
150
+ guild_id: int,
151
+ student_discord_id: int,
152
+ operation_id: UUID,
153
+ *,
154
+ client: AuthenticatedClient,
155
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
156
+ """Commit Student Deactivation Endpoint
157
+
158
+ Args:
159
+ guild_id (int):
160
+ student_discord_id (int):
161
+ operation_id (UUID):
162
+
163
+ Raises:
164
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
165
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
166
+
167
+ Returns:
168
+ Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]
169
+ """
170
+
171
+ kwargs = _get_kwargs(
172
+ guild_id=guild_id,
173
+ student_discord_id=student_discord_id,
174
+ operation_id=operation_id,
175
+ )
176
+
177
+ response = await client.get_async_httpx_client().request(**kwargs)
178
+
179
+ return _build_response(client=client, response=response)
180
+
181
+
182
+ async def asyncio(
183
+ guild_id: int,
184
+ student_discord_id: int,
185
+ operation_id: UUID,
186
+ *,
187
+ client: AuthenticatedClient,
188
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
189
+ """Commit Student Deactivation Endpoint
190
+
191
+ Args:
192
+ guild_id (int):
193
+ student_discord_id (int):
194
+ operation_id (UUID):
195
+
196
+ Raises:
197
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
198
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
199
+
200
+ Returns:
201
+ ErrorResponse | HTTPValidationError | TransitionCommitResponse
202
+ """
203
+
204
+ return (
205
+ await asyncio_detailed(
206
+ guild_id=guild_id,
207
+ student_discord_id=student_discord_id,
208
+ operation_id=operation_id,
209
+ client=client,
210
+ )
211
+ ).parsed
@@ -0,0 +1,211 @@
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.http_validation_error import HTTPValidationError
12
+ from ...models.transition_commit_response import TransitionCommitResponse
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ guild_id: int,
18
+ student_discord_id: int,
19
+ operation_id: UUID,
20
+ ) -> dict[str, Any]:
21
+
22
+ _kwargs: dict[str, Any] = {
23
+ "method": "post",
24
+ "url": "/api/v1/bot/students/{guild_id}/{student_discord_id}/pop/{operation_id}/commit".format(
25
+ guild_id=quote(str(guild_id), safe=""),
26
+ student_discord_id=quote(str(student_discord_id), safe=""),
27
+ operation_id=quote(str(operation_id), safe=""),
28
+ ),
29
+ }
30
+
31
+ return _kwargs
32
+
33
+
34
+ def _parse_response(
35
+ *, client: AuthenticatedClient | Client, response: httpx.Response
36
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
37
+ if response.status_code == 200:
38
+ response_200 = TransitionCommitResponse.from_dict(response.json())
39
+
40
+ return response_200
41
+
42
+ if response.status_code == 401:
43
+ response_401 = ErrorResponse.from_dict(response.json())
44
+
45
+ return response_401
46
+
47
+ if response.status_code == 403:
48
+ response_403 = ErrorResponse.from_dict(response.json())
49
+
50
+ return response_403
51
+
52
+ if response.status_code == 404:
53
+ response_404 = ErrorResponse.from_dict(response.json())
54
+
55
+ return response_404
56
+
57
+ if response.status_code == 409:
58
+ response_409 = ErrorResponse.from_dict(response.json())
59
+
60
+ return response_409
61
+
62
+ if response.status_code == 422:
63
+ response_422 = HTTPValidationError.from_dict(response.json())
64
+
65
+ return response_422
66
+
67
+ if client.raise_on_unexpected_status:
68
+ raise errors.UnexpectedStatus(response.status_code, response.content)
69
+ else:
70
+ return None
71
+
72
+
73
+ def _build_response(
74
+ *, client: AuthenticatedClient | Client, response: httpx.Response
75
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
76
+ return Response(
77
+ status_code=HTTPStatus(response.status_code),
78
+ content=response.content,
79
+ headers=response.headers,
80
+ parsed=_parse_response(client=client, response=response),
81
+ )
82
+
83
+
84
+ def sync_detailed(
85
+ guild_id: int,
86
+ student_discord_id: int,
87
+ operation_id: UUID,
88
+ *,
89
+ client: AuthenticatedClient,
90
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
91
+ """Commit Student Pop Endpoint
92
+
93
+ Args:
94
+ guild_id (int):
95
+ student_discord_id (int):
96
+ operation_id (UUID):
97
+
98
+ Raises:
99
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
100
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
101
+
102
+ Returns:
103
+ Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]
104
+ """
105
+
106
+ kwargs = _get_kwargs(
107
+ guild_id=guild_id,
108
+ student_discord_id=student_discord_id,
109
+ operation_id=operation_id,
110
+ )
111
+
112
+ response = client.get_httpx_client().request(
113
+ **kwargs,
114
+ )
115
+
116
+ return _build_response(client=client, response=response)
117
+
118
+
119
+ def sync(
120
+ guild_id: int,
121
+ student_discord_id: int,
122
+ operation_id: UUID,
123
+ *,
124
+ client: AuthenticatedClient,
125
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
126
+ """Commit Student Pop Endpoint
127
+
128
+ Args:
129
+ guild_id (int):
130
+ student_discord_id (int):
131
+ operation_id (UUID):
132
+
133
+ Raises:
134
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
135
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
136
+
137
+ Returns:
138
+ ErrorResponse | HTTPValidationError | TransitionCommitResponse
139
+ """
140
+
141
+ return sync_detailed(
142
+ guild_id=guild_id,
143
+ student_discord_id=student_discord_id,
144
+ operation_id=operation_id,
145
+ client=client,
146
+ ).parsed
147
+
148
+
149
+ async def asyncio_detailed(
150
+ guild_id: int,
151
+ student_discord_id: int,
152
+ operation_id: UUID,
153
+ *,
154
+ client: AuthenticatedClient,
155
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
156
+ """Commit Student Pop Endpoint
157
+
158
+ Args:
159
+ guild_id (int):
160
+ student_discord_id (int):
161
+ operation_id (UUID):
162
+
163
+ Raises:
164
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
165
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
166
+
167
+ Returns:
168
+ Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]
169
+ """
170
+
171
+ kwargs = _get_kwargs(
172
+ guild_id=guild_id,
173
+ student_discord_id=student_discord_id,
174
+ operation_id=operation_id,
175
+ )
176
+
177
+ response = await client.get_async_httpx_client().request(**kwargs)
178
+
179
+ return _build_response(client=client, response=response)
180
+
181
+
182
+ async def asyncio(
183
+ guild_id: int,
184
+ student_discord_id: int,
185
+ operation_id: UUID,
186
+ *,
187
+ client: AuthenticatedClient,
188
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
189
+ """Commit Student Pop Endpoint
190
+
191
+ Args:
192
+ guild_id (int):
193
+ student_discord_id (int):
194
+ operation_id (UUID):
195
+
196
+ Raises:
197
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
198
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
199
+
200
+ Returns:
201
+ ErrorResponse | HTTPValidationError | TransitionCommitResponse
202
+ """
203
+
204
+ return (
205
+ await asyncio_detailed(
206
+ guild_id=guild_id,
207
+ student_discord_id=student_discord_id,
208
+ operation_id=operation_id,
209
+ client=client,
210
+ )
211
+ ).parsed
@@ -0,0 +1,211 @@
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.http_validation_error import HTTPValidationError
12
+ from ...models.transition_commit_response import TransitionCommitResponse
13
+ from ...types import Response
14
+
15
+
16
+ def _get_kwargs(
17
+ guild_id: int,
18
+ student_discord_id: int,
19
+ operation_id: UUID,
20
+ ) -> dict[str, Any]:
21
+
22
+ _kwargs: dict[str, Any] = {
23
+ "method": "post",
24
+ "url": "/api/v1/bot/students/{guild_id}/{student_discord_id}/stash/{operation_id}/commit".format(
25
+ guild_id=quote(str(guild_id), safe=""),
26
+ student_discord_id=quote(str(student_discord_id), safe=""),
27
+ operation_id=quote(str(operation_id), safe=""),
28
+ ),
29
+ }
30
+
31
+ return _kwargs
32
+
33
+
34
+ def _parse_response(
35
+ *, client: AuthenticatedClient | Client, response: httpx.Response
36
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
37
+ if response.status_code == 200:
38
+ response_200 = TransitionCommitResponse.from_dict(response.json())
39
+
40
+ return response_200
41
+
42
+ if response.status_code == 401:
43
+ response_401 = ErrorResponse.from_dict(response.json())
44
+
45
+ return response_401
46
+
47
+ if response.status_code == 403:
48
+ response_403 = ErrorResponse.from_dict(response.json())
49
+
50
+ return response_403
51
+
52
+ if response.status_code == 404:
53
+ response_404 = ErrorResponse.from_dict(response.json())
54
+
55
+ return response_404
56
+
57
+ if response.status_code == 409:
58
+ response_409 = ErrorResponse.from_dict(response.json())
59
+
60
+ return response_409
61
+
62
+ if response.status_code == 422:
63
+ response_422 = HTTPValidationError.from_dict(response.json())
64
+
65
+ return response_422
66
+
67
+ if client.raise_on_unexpected_status:
68
+ raise errors.UnexpectedStatus(response.status_code, response.content)
69
+ else:
70
+ return None
71
+
72
+
73
+ def _build_response(
74
+ *, client: AuthenticatedClient | Client, response: httpx.Response
75
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
76
+ return Response(
77
+ status_code=HTTPStatus(response.status_code),
78
+ content=response.content,
79
+ headers=response.headers,
80
+ parsed=_parse_response(client=client, response=response),
81
+ )
82
+
83
+
84
+ def sync_detailed(
85
+ guild_id: int,
86
+ student_discord_id: int,
87
+ operation_id: UUID,
88
+ *,
89
+ client: AuthenticatedClient,
90
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
91
+ """Commit Student Stash Endpoint
92
+
93
+ Args:
94
+ guild_id (int):
95
+ student_discord_id (int):
96
+ operation_id (UUID):
97
+
98
+ Raises:
99
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
100
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
101
+
102
+ Returns:
103
+ Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]
104
+ """
105
+
106
+ kwargs = _get_kwargs(
107
+ guild_id=guild_id,
108
+ student_discord_id=student_discord_id,
109
+ operation_id=operation_id,
110
+ )
111
+
112
+ response = client.get_httpx_client().request(
113
+ **kwargs,
114
+ )
115
+
116
+ return _build_response(client=client, response=response)
117
+
118
+
119
+ def sync(
120
+ guild_id: int,
121
+ student_discord_id: int,
122
+ operation_id: UUID,
123
+ *,
124
+ client: AuthenticatedClient,
125
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
126
+ """Commit Student Stash Endpoint
127
+
128
+ Args:
129
+ guild_id (int):
130
+ student_discord_id (int):
131
+ operation_id (UUID):
132
+
133
+ Raises:
134
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
135
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
136
+
137
+ Returns:
138
+ ErrorResponse | HTTPValidationError | TransitionCommitResponse
139
+ """
140
+
141
+ return sync_detailed(
142
+ guild_id=guild_id,
143
+ student_discord_id=student_discord_id,
144
+ operation_id=operation_id,
145
+ client=client,
146
+ ).parsed
147
+
148
+
149
+ async def asyncio_detailed(
150
+ guild_id: int,
151
+ student_discord_id: int,
152
+ operation_id: UUID,
153
+ *,
154
+ client: AuthenticatedClient,
155
+ ) -> Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]:
156
+ """Commit Student Stash Endpoint
157
+
158
+ Args:
159
+ guild_id (int):
160
+ student_discord_id (int):
161
+ operation_id (UUID):
162
+
163
+ Raises:
164
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
165
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
166
+
167
+ Returns:
168
+ Response[ErrorResponse | HTTPValidationError | TransitionCommitResponse]
169
+ """
170
+
171
+ kwargs = _get_kwargs(
172
+ guild_id=guild_id,
173
+ student_discord_id=student_discord_id,
174
+ operation_id=operation_id,
175
+ )
176
+
177
+ response = await client.get_async_httpx_client().request(**kwargs)
178
+
179
+ return _build_response(client=client, response=response)
180
+
181
+
182
+ async def asyncio(
183
+ guild_id: int,
184
+ student_discord_id: int,
185
+ operation_id: UUID,
186
+ *,
187
+ client: AuthenticatedClient,
188
+ ) -> ErrorResponse | HTTPValidationError | TransitionCommitResponse | None:
189
+ """Commit Student Stash Endpoint
190
+
191
+ Args:
192
+ guild_id (int):
193
+ student_discord_id (int):
194
+ operation_id (UUID):
195
+
196
+ Raises:
197
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
198
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
199
+
200
+ Returns:
201
+ ErrorResponse | HTTPValidationError | TransitionCommitResponse
202
+ """
203
+
204
+ return (
205
+ await asyncio_detailed(
206
+ guild_id=guild_id,
207
+ student_discord_id=student_discord_id,
208
+ operation_id=operation_id,
209
+ client=client,
210
+ )
211
+ ).parsed