docket-client 0.3.2__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 (188) hide show
  1. docket/__init__.py +8 -0
  2. docket/api/__init__.py +1 -0
  3. docket/api/access/__init__.py +1 -0
  4. docket/api/access/add_principal.py +193 -0
  5. docket/api/access/archive_role_assignment.py +182 -0
  6. docket/api/access/create_api_token.py +198 -0
  7. docket/api/access/create_application_principal.py +188 -0
  8. docket/api/access/create_role_assignment.py +194 -0
  9. docket/api/access/list_api_tokens.py +184 -0
  10. docket/api/access/list_principals.py +184 -0
  11. docket/api/access/list_role_assignments.py +200 -0
  12. docket/api/access/revoke_api_token.py +173 -0
  13. docket/api/identity/__init__.py +1 -0
  14. docket/api/identity/create_my_api_token.py +206 -0
  15. docket/api/identity/get_me.py +127 -0
  16. docket/api/identity/list_my_api_tokens.py +151 -0
  17. docket/api/identity/revoke_my_api_token.py +178 -0
  18. docket/api/recurring_acquisitions/__init__.py +1 -0
  19. docket/api/recurring_acquisitions/archive_recurring_acquisition.py +207 -0
  20. docket/api/recurring_acquisitions/create_recurring_acquisition.py +218 -0
  21. docket/api/recurring_acquisitions/get_recurring_acquisition.py +163 -0
  22. docket/api/recurring_acquisitions/list_recurring_acquisitions.py +248 -0
  23. docket/api/recurring_acquisitions/preview_recurring_acquisition.py +187 -0
  24. docket/api/recurring_acquisitions/preview_split_recurring_acquisition.py +232 -0
  25. docket/api/recurring_acquisitions/split_recurring_acquisition.py +258 -0
  26. docket/api/runs/__init__.py +1 -0
  27. docket/api/runs/get_run.py +160 -0
  28. docket/api/runs/list_runs.py +180 -0
  29. docket/api/runs/report_run_outcome.py +206 -0
  30. docket/api/scheduled_acquisitions/__init__.py +1 -0
  31. docket/api/scheduled_acquisitions/archive_scheduled_acquisition.py +203 -0
  32. docket/api/scheduled_acquisitions/create_scheduled_acquisition.py +185 -0
  33. docket/api/scheduled_acquisitions/get_resolved_settings.py +169 -0
  34. docket/api/scheduled_acquisitions/get_scheduled_acquisition.py +159 -0
  35. docket/api/scheduled_acquisitions/list_active_acquisitions.py +297 -0
  36. docket/api/scheduled_acquisitions/list_runs_for_scheduled_acquisition.py +191 -0
  37. docket/api/scheduled_acquisitions/list_scheduled_acquisitions.py +332 -0
  38. docket/api/scheduled_acquisitions/preview_scheduled_acquisition_edit.py +224 -0
  39. docket/api/scheduled_acquisitions/set_planning_status.py +199 -0
  40. docket/api/scheduled_acquisitions/start_run.py +221 -0
  41. docket/api/scheduled_acquisitions/update_scheduled_acquisition.py +226 -0
  42. docket/api/settings/__init__.py +1 -0
  43. docket/api/settings/list_behavior_curriculum_discriminator_values.py +188 -0
  44. docket/api/settings/list_behavior_curriculum_settings.py +199 -0
  45. docket/api/settings/list_fip_discriminator_values.py +184 -0
  46. docket/api/settings/list_fip_settings.py +195 -0
  47. docket/api/settings/list_live_behavior_curriculum_settings.py +233 -0
  48. docket/api/settings/list_live_fip_settings.py +225 -0
  49. docket/api/settings/preview_behavior_curriculum_settings.py +191 -0
  50. docket/api/settings/preview_fip_settings.py +177 -0
  51. docket/api/settings/push_behavior_curriculum_settings.py +222 -0
  52. docket/api/settings/push_fip_settings.py +206 -0
  53. docket/api/templates/__init__.py +1 -0
  54. docket/api/templates/archive_template.py +203 -0
  55. docket/api/templates/create_template.py +206 -0
  56. docket/api/templates/get_template.py +159 -0
  57. docket/api/templates/list_templates.py +174 -0
  58. docket/api/templates/update_template.py +234 -0
  59. docket/api/vocabulary/__init__.py +1 -0
  60. docket/api/vocabulary/list_instruments.py +165 -0
  61. docket/api/vocabulary/list_persons.py +132 -0
  62. docket/api/vocabulary/list_projects.py +132 -0
  63. docket/api/vocabulary/list_subjects.py +132 -0
  64. docket/api/vocabulary/lookup_person.py +166 -0
  65. docket/api/vocabulary/lookup_subject.py +166 -0
  66. docket/api/vocabulary/sync_vocabulary.py +148 -0
  67. docket/client.py +272 -0
  68. docket/errors.py +16 -0
  69. docket/models/__init__.py +221 -0
  70. docket/models/access_role.py +12 -0
  71. docket/models/access_role_nullable_type_1.py +12 -0
  72. docket/models/access_role_nullable_type_2_type_1.py +12 -0
  73. docket/models/access_role_nullable_type_3_type_1.py +12 -0
  74. docket/models/acquisition_variable.py +72 -0
  75. docket/models/acquisition_warning.py +126 -0
  76. docket/models/add_principal_request.py +83 -0
  77. docket/models/api_token_response.py +271 -0
  78. docket/models/api_token_status.py +10 -0
  79. docket/models/archive_recurring_acquisition_request.py +77 -0
  80. docket/models/archive_recurring_acquisition_response.py +83 -0
  81. docket/models/archive_scheduled_acquisition_request.py +78 -0
  82. docket/models/archive_template_request.py +66 -0
  83. docket/models/auth_mode.py +10 -0
  84. docket/models/behavior_curriculum_push_settings_request.py +85 -0
  85. docket/models/behavior_curriculum_settings.py +55 -0
  86. docket/models/behavior_curriculum_settings_preview_response.py +102 -0
  87. docket/models/behavior_curriculum_settings_preview_response_promoted.py +50 -0
  88. docket/models/behavior_curriculum_settings_version_response.py +160 -0
  89. docket/models/behavior_curriculum_settings_version_response_promoted.py +50 -0
  90. docket/models/caller_kind.py +11 -0
  91. docket/models/create_api_token_request.py +97 -0
  92. docket/models/create_application_principal_request.py +65 -0
  93. docket/models/create_personal_api_token_request.py +167 -0
  94. docket/models/create_recurring_acquisition_request.py +269 -0
  95. docket/models/create_role_assignment_request.py +99 -0
  96. docket/models/create_scheduled_acquisition_request.py +265 -0
  97. docket/models/create_template_request.py +323 -0
  98. docket/models/created_api_token_response.py +82 -0
  99. docket/models/effective_status.py +15 -0
  100. docket/models/fip_color.py +13 -0
  101. docket/models/fip_fiber.py +93 -0
  102. docket/models/fip_mode.py +9 -0
  103. docket/models/fip_push_settings_request.py +82 -0
  104. docket/models/fip_settings.py +91 -0
  105. docket/models/fip_settings_preview_response.py +97 -0
  106. docket/models/fip_settings_preview_response_promoted.py +50 -0
  107. docket/models/fip_settings_version_response.py +155 -0
  108. docket/models/fip_settings_version_response_promoted.py +50 -0
  109. docket/models/future_occurrences.py +9 -0
  110. docket/models/get_resolved_settings_response_200.py +65 -0
  111. docket/models/held_role_response.py +116 -0
  112. docket/models/http_validation_problem_details.py +204 -0
  113. docket/models/http_validation_problem_details_errors.py +59 -0
  114. docket/models/instrument_response.py +91 -0
  115. docket/models/kept_occurrence.py +85 -0
  116. docket/models/kept_occurrence_reason.py +10 -0
  117. docket/models/list_active_acquisitions_effective_status_item.py +15 -0
  118. docket/models/list_scheduled_acquisitions_planning_status.py +11 -0
  119. docket/models/me_caller.py +118 -0
  120. docket/models/me_permission.py +98 -0
  121. docket/models/me_response.py +158 -0
  122. docket/models/me_role.py +75 -0
  123. docket/models/occurrence_preview.py +121 -0
  124. docket/models/occurrence_summary.py +126 -0
  125. docket/models/occurrence_warnings.py +91 -0
  126. docket/models/permission_action.py +12 -0
  127. docket/models/person_assignment.py +74 -0
  128. docket/models/person_lookup_response.py +131 -0
  129. docket/models/person_response.py +103 -0
  130. docket/models/person_role.py +9 -0
  131. docket/models/personal_token_limits.py +92 -0
  132. docket/models/planning_status.py +11 -0
  133. docket/models/principal_kind.py +9 -0
  134. docket/models/principal_response.py +216 -0
  135. docket/models/problem_details.py +177 -0
  136. docket/models/project_response.py +75 -0
  137. docket/models/recurrence_exception_kind.py +13 -0
  138. docket/models/recurrence_exception_response.py +103 -0
  139. docket/models/recurrence_frequency.py +9 -0
  140. docket/models/recurrence_preview_response.py +101 -0
  141. docket/models/recurrence_rule.py +207 -0
  142. docket/models/recurring_acquisition_created_response.py +123 -0
  143. docket/models/recurring_acquisition_detail_response.py +105 -0
  144. docket/models/recurring_acquisition_response.py +326 -0
  145. docket/models/report_run_outcome_request.py +89 -0
  146. docket/models/resolution_mode.py +10 -0
  147. docket/models/resolved_settings.py +73 -0
  148. docket/models/role_assignment_response.py +157 -0
  149. docket/models/role_origin.py +10 -0
  150. docket/models/role_source_kind.py +10 -0
  151. docket/models/run_origin.py +9 -0
  152. docket/models/run_outcome.py +9 -0
  153. docket/models/run_response.py +181 -0
  154. docket/models/run_settings_snapshot.py +72 -0
  155. docket/models/run_start_response.py +91 -0
  156. docket/models/run_start_response_settings.py +65 -0
  157. docket/models/run_status.py +11 -0
  158. docket/models/scheduled_acquisition_edit_preview_response.py +150 -0
  159. docket/models/scheduled_acquisition_response.py +366 -0
  160. docket/models/set_planning_status_request.py +90 -0
  161. docket/models/settings_selector.py +138 -0
  162. docket/models/skipped_occurrence.py +85 -0
  163. docket/models/split_preview_response.py +129 -0
  164. docket/models/split_recurring_acquisition_request.py +261 -0
  165. docket/models/split_recurring_acquisition_response.py +159 -0
  166. docket/models/start_run_request.py +73 -0
  167. docket/models/subject_lookup_response.py +149 -0
  168. docket/models/subject_response.py +128 -0
  169. docket/models/sync_counts.py +80 -0
  170. docket/models/sync_response.py +81 -0
  171. docket/models/template_response.py +302 -0
  172. docket/models/update_scheduled_acquisition_request.py +235 -0
  173. docket/models/update_template_request.py +279 -0
  174. docket/models/weekday.py +14 -0
  175. docket/types.py +54 -0
  176. docket_auth/__init__.py +239 -0
  177. docket_client-0.3.2.dist-info/METADATA +233 -0
  178. docket_client-0.3.2.dist-info/RECORD +188 -0
  179. docket_client-0.3.2.dist-info/WHEEL +4 -0
  180. docket_client-0.3.2.dist-info/entry_points.txt +2 -0
  181. docket_mcp/__init__.py +6 -0
  182. docket_mcp/api.py +207 -0
  183. docket_mcp/config.py +57 -0
  184. docket_mcp/server.py +78 -0
  185. docket_mcp/signin.py +155 -0
  186. docket_mcp/slots.py +80 -0
  187. docket_mcp/times.py +160 -0
  188. docket_mcp/tools.py +1202 -0
@@ -0,0 +1,184 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.principal_response import PrincipalResponse
12
+ from ...models.problem_details import ProblemDetails
13
+ from ...types import UNSET, Unset
14
+ from typing import cast
15
+
16
+
17
+ def _get_kwargs(
18
+ *,
19
+ search: str | Unset = UNSET,
20
+ ) -> dict[str, Any]:
21
+
22
+ params: dict[str, Any] = {}
23
+
24
+ params["search"] = search
25
+
26
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
27
+
28
+ _kwargs: dict[str, Any] = {
29
+ "method": "get",
30
+ "url": "/api/v1/access/principals",
31
+ "params": params,
32
+ }
33
+
34
+ return _kwargs
35
+
36
+
37
+ def _parse_response(
38
+ *, client: AuthenticatedClient | Client, response: httpx.Response
39
+ ) -> ProblemDetails | list[PrincipalResponse] | None:
40
+ if response.status_code == 200:
41
+ response_200 = []
42
+ _response_200 = response.json()
43
+ for response_200_item_data in _response_200:
44
+ response_200_item = PrincipalResponse.from_dict(response_200_item_data)
45
+
46
+ response_200.append(response_200_item)
47
+
48
+ return response_200
49
+
50
+ if response.status_code == 401:
51
+ response_401 = ProblemDetails.from_dict(response.json())
52
+
53
+ return response_401
54
+
55
+ if response.status_code == 403:
56
+ response_403 = ProblemDetails.from_dict(response.json())
57
+
58
+ return response_403
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[ProblemDetails | list[PrincipalResponse]]:
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
+ *,
79
+ client: AuthenticatedClient,
80
+ search: str | Unset = UNSET,
81
+ ) -> Response[ProblemDetails | list[PrincipalResponse]]:
82
+ """People and applications Docket knows (they have signed in, or an admin added them) with their roles.
83
+ Admin only.
84
+
85
+ Args:
86
+ search (str | Unset):
87
+
88
+ Raises:
89
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
90
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
91
+
92
+ Returns:
93
+ Response[ProblemDetails | list[PrincipalResponse]]
94
+ """
95
+
96
+ kwargs = _get_kwargs(
97
+ search=search,
98
+ )
99
+
100
+ response = client.get_httpx_client().request(
101
+ **kwargs,
102
+ )
103
+
104
+ return _build_response(client=client, response=response)
105
+
106
+
107
+ def sync(
108
+ *,
109
+ client: AuthenticatedClient,
110
+ search: str | Unset = UNSET,
111
+ ) -> ProblemDetails | list[PrincipalResponse] | None:
112
+ """People and applications Docket knows (they have signed in, or an admin added them) with their roles.
113
+ Admin only.
114
+
115
+ Args:
116
+ search (str | Unset):
117
+
118
+ Raises:
119
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
120
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
121
+
122
+ Returns:
123
+ ProblemDetails | list[PrincipalResponse]
124
+ """
125
+
126
+ return sync_detailed(
127
+ client=client,
128
+ search=search,
129
+ ).parsed
130
+
131
+
132
+ async def asyncio_detailed(
133
+ *,
134
+ client: AuthenticatedClient,
135
+ search: str | Unset = UNSET,
136
+ ) -> Response[ProblemDetails | list[PrincipalResponse]]:
137
+ """People and applications Docket knows (they have signed in, or an admin added them) with their roles.
138
+ Admin only.
139
+
140
+ Args:
141
+ search (str | Unset):
142
+
143
+ Raises:
144
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
145
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
146
+
147
+ Returns:
148
+ Response[ProblemDetails | list[PrincipalResponse]]
149
+ """
150
+
151
+ kwargs = _get_kwargs(
152
+ search=search,
153
+ )
154
+
155
+ response = await client.get_async_httpx_client().request(**kwargs)
156
+
157
+ return _build_response(client=client, response=response)
158
+
159
+
160
+ async def asyncio(
161
+ *,
162
+ client: AuthenticatedClient,
163
+ search: str | Unset = UNSET,
164
+ ) -> ProblemDetails | list[PrincipalResponse] | None:
165
+ """People and applications Docket knows (they have signed in, or an admin added them) with their roles.
166
+ Admin only.
167
+
168
+ Args:
169
+ search (str | Unset):
170
+
171
+ Raises:
172
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
173
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
174
+
175
+ Returns:
176
+ ProblemDetails | list[PrincipalResponse]
177
+ """
178
+
179
+ return (
180
+ await asyncio_detailed(
181
+ client=client,
182
+ search=search,
183
+ )
184
+ ).parsed
@@ -0,0 +1,200 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.problem_details import ProblemDetails
12
+ from ...models.role_assignment_response import RoleAssignmentResponse
13
+ from ...types import UNSET, Unset
14
+ from typing import cast
15
+
16
+
17
+ def _get_kwargs(
18
+ *,
19
+ principal: str | Unset = UNSET,
20
+ include_archived: bool | None | Unset = UNSET,
21
+ ) -> dict[str, Any]:
22
+
23
+ params: dict[str, Any] = {}
24
+
25
+ params["principal"] = principal
26
+
27
+ json_include_archived: bool | None | Unset
28
+ if isinstance(include_archived, Unset):
29
+ json_include_archived = UNSET
30
+ else:
31
+ json_include_archived = include_archived
32
+ params["include_archived"] = json_include_archived
33
+
34
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
35
+
36
+ _kwargs: dict[str, Any] = {
37
+ "method": "get",
38
+ "url": "/api/v1/access/assignments",
39
+ "params": params,
40
+ }
41
+
42
+ return _kwargs
43
+
44
+
45
+ def _parse_response(
46
+ *, client: AuthenticatedClient | Client, response: httpx.Response
47
+ ) -> ProblemDetails | list[RoleAssignmentResponse] | None:
48
+ if response.status_code == 200:
49
+ response_200 = []
50
+ _response_200 = response.json()
51
+ for response_200_item_data in _response_200:
52
+ response_200_item = RoleAssignmentResponse.from_dict(response_200_item_data)
53
+
54
+ response_200.append(response_200_item)
55
+
56
+ return response_200
57
+
58
+ if response.status_code == 401:
59
+ response_401 = ProblemDetails.from_dict(response.json())
60
+
61
+ return response_401
62
+
63
+ if response.status_code == 403:
64
+ response_403 = ProblemDetails.from_dict(response.json())
65
+
66
+ return response_403
67
+
68
+ if client.raise_on_unexpected_status:
69
+ raise errors.UnexpectedStatus(response.status_code, response.content)
70
+ else:
71
+ return None
72
+
73
+
74
+ def _build_response(
75
+ *, client: AuthenticatedClient | Client, response: httpx.Response
76
+ ) -> Response[ProblemDetails | list[RoleAssignmentResponse]]:
77
+ return Response(
78
+ status_code=HTTPStatus(response.status_code),
79
+ content=response.content,
80
+ headers=response.headers,
81
+ parsed=_parse_response(client=client, response=response),
82
+ )
83
+
84
+
85
+ def sync_detailed(
86
+ *,
87
+ client: AuthenticatedClient,
88
+ principal: str | Unset = UNSET,
89
+ include_archived: bool | None | Unset = UNSET,
90
+ ) -> Response[ProblemDetails | list[RoleAssignmentResponse]]:
91
+ """Role assignments, optionally of one principal. Admin only.
92
+
93
+ Args:
94
+ principal (str | Unset):
95
+ include_archived (bool | None | Unset):
96
+
97
+ Raises:
98
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
99
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
100
+
101
+ Returns:
102
+ Response[ProblemDetails | list[RoleAssignmentResponse]]
103
+ """
104
+
105
+ kwargs = _get_kwargs(
106
+ principal=principal,
107
+ include_archived=include_archived,
108
+ )
109
+
110
+ response = client.get_httpx_client().request(
111
+ **kwargs,
112
+ )
113
+
114
+ return _build_response(client=client, response=response)
115
+
116
+
117
+ def sync(
118
+ *,
119
+ client: AuthenticatedClient,
120
+ principal: str | Unset = UNSET,
121
+ include_archived: bool | None | Unset = UNSET,
122
+ ) -> ProblemDetails | list[RoleAssignmentResponse] | None:
123
+ """Role assignments, optionally of one principal. Admin only.
124
+
125
+ Args:
126
+ principal (str | Unset):
127
+ include_archived (bool | None | Unset):
128
+
129
+ Raises:
130
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
131
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
132
+
133
+ Returns:
134
+ ProblemDetails | list[RoleAssignmentResponse]
135
+ """
136
+
137
+ return sync_detailed(
138
+ client=client,
139
+ principal=principal,
140
+ include_archived=include_archived,
141
+ ).parsed
142
+
143
+
144
+ async def asyncio_detailed(
145
+ *,
146
+ client: AuthenticatedClient,
147
+ principal: str | Unset = UNSET,
148
+ include_archived: bool | None | Unset = UNSET,
149
+ ) -> Response[ProblemDetails | list[RoleAssignmentResponse]]:
150
+ """Role assignments, optionally of one principal. Admin only.
151
+
152
+ Args:
153
+ principal (str | Unset):
154
+ include_archived (bool | None | Unset):
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[ProblemDetails | list[RoleAssignmentResponse]]
162
+ """
163
+
164
+ kwargs = _get_kwargs(
165
+ principal=principal,
166
+ include_archived=include_archived,
167
+ )
168
+
169
+ response = await client.get_async_httpx_client().request(**kwargs)
170
+
171
+ return _build_response(client=client, response=response)
172
+
173
+
174
+ async def asyncio(
175
+ *,
176
+ client: AuthenticatedClient,
177
+ principal: str | Unset = UNSET,
178
+ include_archived: bool | None | Unset = UNSET,
179
+ ) -> ProblemDetails | list[RoleAssignmentResponse] | None:
180
+ """Role assignments, optionally of one principal. Admin only.
181
+
182
+ Args:
183
+ principal (str | Unset):
184
+ include_archived (bool | None | Unset):
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
+ ProblemDetails | list[RoleAssignmentResponse]
192
+ """
193
+
194
+ return (
195
+ await asyncio_detailed(
196
+ client=client,
197
+ principal=principal,
198
+ include_archived=include_archived,
199
+ )
200
+ ).parsed
@@ -0,0 +1,173 @@
1
+ from http import HTTPStatus
2
+ from typing import Any, cast
3
+ from urllib.parse import quote
4
+
5
+ import httpx
6
+
7
+ from ...client import AuthenticatedClient, Client
8
+ from ...types import Response, UNSET
9
+ from ... import errors
10
+
11
+ from ...models.api_token_response import ApiTokenResponse
12
+ from ...models.problem_details import ProblemDetails
13
+ from typing import cast
14
+
15
+
16
+ def _get_kwargs(
17
+ id: int,
18
+ ) -> dict[str, Any]:
19
+
20
+ _kwargs: dict[str, Any] = {
21
+ "method": "post",
22
+ "url": "/api/v1/access/tokens/{id}/revoke".format(
23
+ id=quote(str(id), safe=""),
24
+ ),
25
+ }
26
+
27
+ return _kwargs
28
+
29
+
30
+ def _parse_response(
31
+ *, client: AuthenticatedClient | Client, response: httpx.Response
32
+ ) -> ApiTokenResponse | ProblemDetails | None:
33
+ if response.status_code == 200:
34
+ response_200 = ApiTokenResponse.from_dict(response.json())
35
+
36
+ return response_200
37
+
38
+ if response.status_code == 401:
39
+ response_401 = ProblemDetails.from_dict(response.json())
40
+
41
+ return response_401
42
+
43
+ if response.status_code == 403:
44
+ response_403 = ProblemDetails.from_dict(response.json())
45
+
46
+ return response_403
47
+
48
+ if response.status_code == 404:
49
+ response_404 = ProblemDetails.from_dict(response.json())
50
+
51
+ return response_404
52
+
53
+ if client.raise_on_unexpected_status:
54
+ raise errors.UnexpectedStatus(response.status_code, response.content)
55
+ else:
56
+ return None
57
+
58
+
59
+ def _build_response(
60
+ *, client: AuthenticatedClient | Client, response: httpx.Response
61
+ ) -> Response[ApiTokenResponse | ProblemDetails]:
62
+ return Response(
63
+ status_code=HTTPStatus(response.status_code),
64
+ content=response.content,
65
+ headers=response.headers,
66
+ parsed=_parse_response(client=client, response=response),
67
+ )
68
+
69
+
70
+ def sync_detailed(
71
+ id: int,
72
+ *,
73
+ client: AuthenticatedClient,
74
+ ) -> Response[ApiTokenResponse | ProblemDetails]:
75
+ """Revoke an API token. It stops working on the next request. Admin only.
76
+
77
+ Args:
78
+ id (int):
79
+
80
+ Raises:
81
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
82
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
83
+
84
+ Returns:
85
+ Response[ApiTokenResponse | ProblemDetails]
86
+ """
87
+
88
+ kwargs = _get_kwargs(
89
+ id=id,
90
+ )
91
+
92
+ response = client.get_httpx_client().request(
93
+ **kwargs,
94
+ )
95
+
96
+ return _build_response(client=client, response=response)
97
+
98
+
99
+ def sync(
100
+ id: int,
101
+ *,
102
+ client: AuthenticatedClient,
103
+ ) -> ApiTokenResponse | ProblemDetails | None:
104
+ """Revoke an API token. It stops working on the next request. Admin only.
105
+
106
+ Args:
107
+ id (int):
108
+
109
+ Raises:
110
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
111
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
112
+
113
+ Returns:
114
+ ApiTokenResponse | ProblemDetails
115
+ """
116
+
117
+ return sync_detailed(
118
+ id=id,
119
+ client=client,
120
+ ).parsed
121
+
122
+
123
+ async def asyncio_detailed(
124
+ id: int,
125
+ *,
126
+ client: AuthenticatedClient,
127
+ ) -> Response[ApiTokenResponse | ProblemDetails]:
128
+ """Revoke an API token. It stops working on the next request. Admin only.
129
+
130
+ Args:
131
+ id (int):
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
+ Response[ApiTokenResponse | ProblemDetails]
139
+ """
140
+
141
+ kwargs = _get_kwargs(
142
+ id=id,
143
+ )
144
+
145
+ response = await client.get_async_httpx_client().request(**kwargs)
146
+
147
+ return _build_response(client=client, response=response)
148
+
149
+
150
+ async def asyncio(
151
+ id: int,
152
+ *,
153
+ client: AuthenticatedClient,
154
+ ) -> ApiTokenResponse | ProblemDetails | None:
155
+ """Revoke an API token. It stops working on the next request. Admin only.
156
+
157
+ Args:
158
+ id (int):
159
+
160
+ Raises:
161
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
162
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
163
+
164
+ Returns:
165
+ ApiTokenResponse | ProblemDetails
166
+ """
167
+
168
+ return (
169
+ await asyncio_detailed(
170
+ id=id,
171
+ client=client,
172
+ )
173
+ ).parsed
@@ -0,0 +1 @@
1
+ """Contains endpoint functions for accessing the API"""