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,226 @@
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.http_validation_problem_details import HttpValidationProblemDetails
12
+ from ...models.problem_details import ProblemDetails
13
+ from ...models.scheduled_acquisition_response import ScheduledAcquisitionResponse
14
+ from ...models.update_scheduled_acquisition_request import UpdateScheduledAcquisitionRequest
15
+ from typing import cast
16
+
17
+
18
+ def _get_kwargs(
19
+ id: int,
20
+ *,
21
+ body: UpdateScheduledAcquisitionRequest,
22
+ ) -> dict[str, Any]:
23
+ headers: dict[str, Any] = {}
24
+
25
+ _kwargs: dict[str, Any] = {
26
+ "method": "patch",
27
+ "url": "/api/v1/scheduled-acquisitions/{id}".format(
28
+ id=quote(str(id), safe=""),
29
+ ),
30
+ }
31
+
32
+ _kwargs["json"] = body.to_dict()
33
+
34
+ headers["Content-Type"] = "application/json"
35
+
36
+ _kwargs["headers"] = headers
37
+ return _kwargs
38
+
39
+
40
+ def _parse_response(
41
+ *, client: AuthenticatedClient | Client, response: httpx.Response
42
+ ) -> HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse | None:
43
+ if response.status_code == 200:
44
+ response_200 = ScheduledAcquisitionResponse.from_dict(response.json())
45
+
46
+ return response_200
47
+
48
+ if response.status_code == 401:
49
+ response_401 = ProblemDetails.from_dict(response.json())
50
+
51
+ return response_401
52
+
53
+ if response.status_code == 403:
54
+ response_403 = ProblemDetails.from_dict(response.json())
55
+
56
+ return response_403
57
+
58
+ if response.status_code == 404:
59
+ response_404 = ProblemDetails.from_dict(response.json())
60
+
61
+ return response_404
62
+
63
+ if response.status_code == 409:
64
+ response_409 = ProblemDetails.from_dict(response.json())
65
+
66
+ return response_409
67
+
68
+ if response.status_code == 422:
69
+ response_422 = HttpValidationProblemDetails.from_dict(response.json())
70
+
71
+ return response_422
72
+
73
+ if response.status_code == 503:
74
+ response_503 = ProblemDetails.from_dict(response.json())
75
+
76
+ return response_503
77
+
78
+ if client.raise_on_unexpected_status:
79
+ raise errors.UnexpectedStatus(response.status_code, response.content)
80
+ else:
81
+ return None
82
+
83
+
84
+ def _build_response(
85
+ *, client: AuthenticatedClient | Client, response: httpx.Response
86
+ ) -> Response[HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse]:
87
+ return Response(
88
+ status_code=HTTPStatus(response.status_code),
89
+ content=response.content,
90
+ headers=response.headers,
91
+ parsed=_parse_response(client=client, response=response),
92
+ )
93
+
94
+
95
+ def sync_detailed(
96
+ id: int,
97
+ *,
98
+ client: AuthenticatedClient,
99
+ body: UpdateScheduledAcquisitionRequest,
100
+ ) -> Response[HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse]:
101
+ """Edit a scheduled acquisition: only the fields sent change. Needs expected_version; the response
102
+ lists overlap warnings.
103
+
104
+ Args:
105
+ id (int):
106
+ body (UpdateScheduledAcquisitionRequest): Change a scheduled acquisition. Every field
107
+ except `expected_version`
108
+ is optional: an omitted field is left unchanged. `people`,
109
+ `type_refs` and `variables` replace the whole list when present.
110
+
111
+ Raises:
112
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
113
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
114
+
115
+ Returns:
116
+ Response[HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse]
117
+ """
118
+
119
+ kwargs = _get_kwargs(
120
+ id=id,
121
+ body=body,
122
+ )
123
+
124
+ response = client.get_httpx_client().request(
125
+ **kwargs,
126
+ )
127
+
128
+ return _build_response(client=client, response=response)
129
+
130
+
131
+ def sync(
132
+ id: int,
133
+ *,
134
+ client: AuthenticatedClient,
135
+ body: UpdateScheduledAcquisitionRequest,
136
+ ) -> HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse | None:
137
+ """Edit a scheduled acquisition: only the fields sent change. Needs expected_version; the response
138
+ lists overlap warnings.
139
+
140
+ Args:
141
+ id (int):
142
+ body (UpdateScheduledAcquisitionRequest): Change a scheduled acquisition. Every field
143
+ except `expected_version`
144
+ is optional: an omitted field is left unchanged. `people`,
145
+ `type_refs` and `variables` replace the whole list when present.
146
+
147
+ Raises:
148
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
149
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
150
+
151
+ Returns:
152
+ HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse
153
+ """
154
+
155
+ return sync_detailed(
156
+ id=id,
157
+ client=client,
158
+ body=body,
159
+ ).parsed
160
+
161
+
162
+ async def asyncio_detailed(
163
+ id: int,
164
+ *,
165
+ client: AuthenticatedClient,
166
+ body: UpdateScheduledAcquisitionRequest,
167
+ ) -> Response[HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse]:
168
+ """Edit a scheduled acquisition: only the fields sent change. Needs expected_version; the response
169
+ lists overlap warnings.
170
+
171
+ Args:
172
+ id (int):
173
+ body (UpdateScheduledAcquisitionRequest): Change a scheduled acquisition. Every field
174
+ except `expected_version`
175
+ is optional: an omitted field is left unchanged. `people`,
176
+ `type_refs` and `variables` replace the whole list when present.
177
+
178
+ Raises:
179
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
180
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
181
+
182
+ Returns:
183
+ Response[HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse]
184
+ """
185
+
186
+ kwargs = _get_kwargs(
187
+ id=id,
188
+ body=body,
189
+ )
190
+
191
+ response = await client.get_async_httpx_client().request(**kwargs)
192
+
193
+ return _build_response(client=client, response=response)
194
+
195
+
196
+ async def asyncio(
197
+ id: int,
198
+ *,
199
+ client: AuthenticatedClient,
200
+ body: UpdateScheduledAcquisitionRequest,
201
+ ) -> HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse | None:
202
+ """Edit a scheduled acquisition: only the fields sent change. Needs expected_version; the response
203
+ lists overlap warnings.
204
+
205
+ Args:
206
+ id (int):
207
+ body (UpdateScheduledAcquisitionRequest): Change a scheduled acquisition. Every field
208
+ except `expected_version`
209
+ is optional: an omitted field is left unchanged. `people`,
210
+ `type_refs` and `variables` replace the whole list when present.
211
+
212
+ Raises:
213
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
214
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
215
+
216
+ Returns:
217
+ HttpValidationProblemDetails | ProblemDetails | ScheduledAcquisitionResponse
218
+ """
219
+
220
+ return (
221
+ await asyncio_detailed(
222
+ id=id,
223
+ client=client,
224
+ body=body,
225
+ )
226
+ ).parsed
@@ -0,0 +1 @@
1
+ """Contains endpoint functions for accessing the API"""
@@ -0,0 +1,188 @@
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.http_validation_problem_details import HttpValidationProblemDetails
12
+ from ...types import UNSET, Unset
13
+ from typing import cast
14
+
15
+
16
+ def _get_kwargs(
17
+ *,
18
+ field: str,
19
+ subject_id: str | Unset = UNSET,
20
+ ) -> dict[str, Any]:
21
+
22
+ params: dict[str, Any] = {}
23
+
24
+ params["field"] = field
25
+
26
+ params["subject_id"] = subject_id
27
+
28
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
29
+
30
+ _kwargs: dict[str, Any] = {
31
+ "method": "get",
32
+ "url": "/api/v1/settings/behavior-curriculum/discriminator-values",
33
+ "params": params,
34
+ }
35
+
36
+ return _kwargs
37
+
38
+
39
+ def _parse_response(
40
+ *, client: AuthenticatedClient | Client, response: httpx.Response
41
+ ) -> HttpValidationProblemDetails | list[str] | None:
42
+ if response.status_code == 200:
43
+ response_200 = cast(list[str], response.json())
44
+
45
+ return response_200
46
+
47
+ if response.status_code == 422:
48
+ response_422 = HttpValidationProblemDetails.from_dict(response.json())
49
+
50
+ return response_422
51
+
52
+ if client.raise_on_unexpected_status:
53
+ raise errors.UnexpectedStatus(response.status_code, response.content)
54
+ else:
55
+ return None
56
+
57
+
58
+ def _build_response(
59
+ *, client: AuthenticatedClient | Client, response: httpx.Response
60
+ ) -> Response[HttpValidationProblemDetails | list[str]]:
61
+ return Response(
62
+ status_code=HTTPStatus(response.status_code),
63
+ content=response.content,
64
+ headers=response.headers,
65
+ parsed=_parse_response(client=client, response=response),
66
+ )
67
+
68
+
69
+ def sync_detailed(
70
+ *,
71
+ client: AuthenticatedClient,
72
+ field: str,
73
+ subject_id: str | Unset = UNSET,
74
+ ) -> Response[HttpValidationProblemDetails | list[str]]:
75
+ """Distinct values of a behavior_curriculum discriminator field among live versions, optionally of one
76
+ subject.
77
+
78
+ Args:
79
+ field (str):
80
+ subject_id (str | Unset):
81
+
82
+ Raises:
83
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
84
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
85
+
86
+ Returns:
87
+ Response[HttpValidationProblemDetails | list[str]]
88
+ """
89
+
90
+ kwargs = _get_kwargs(
91
+ field=field,
92
+ subject_id=subject_id,
93
+ )
94
+
95
+ response = client.get_httpx_client().request(
96
+ **kwargs,
97
+ )
98
+
99
+ return _build_response(client=client, response=response)
100
+
101
+
102
+ def sync(
103
+ *,
104
+ client: AuthenticatedClient,
105
+ field: str,
106
+ subject_id: str | Unset = UNSET,
107
+ ) -> HttpValidationProblemDetails | list[str] | None:
108
+ """Distinct values of a behavior_curriculum discriminator field among live versions, optionally of one
109
+ subject.
110
+
111
+ Args:
112
+ field (str):
113
+ subject_id (str | Unset):
114
+
115
+ Raises:
116
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
117
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
118
+
119
+ Returns:
120
+ HttpValidationProblemDetails | list[str]
121
+ """
122
+
123
+ return sync_detailed(
124
+ client=client,
125
+ field=field,
126
+ subject_id=subject_id,
127
+ ).parsed
128
+
129
+
130
+ async def asyncio_detailed(
131
+ *,
132
+ client: AuthenticatedClient,
133
+ field: str,
134
+ subject_id: str | Unset = UNSET,
135
+ ) -> Response[HttpValidationProblemDetails | list[str]]:
136
+ """Distinct values of a behavior_curriculum discriminator field among live versions, optionally of one
137
+ subject.
138
+
139
+ Args:
140
+ field (str):
141
+ subject_id (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[HttpValidationProblemDetails | list[str]]
149
+ """
150
+
151
+ kwargs = _get_kwargs(
152
+ field=field,
153
+ subject_id=subject_id,
154
+ )
155
+
156
+ response = await client.get_async_httpx_client().request(**kwargs)
157
+
158
+ return _build_response(client=client, response=response)
159
+
160
+
161
+ async def asyncio(
162
+ *,
163
+ client: AuthenticatedClient,
164
+ field: str,
165
+ subject_id: str | Unset = UNSET,
166
+ ) -> HttpValidationProblemDetails | list[str] | None:
167
+ """Distinct values of a behavior_curriculum discriminator field among live versions, optionally of one
168
+ subject.
169
+
170
+ Args:
171
+ field (str):
172
+ subject_id (str | Unset):
173
+
174
+ Raises:
175
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
176
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
177
+
178
+ Returns:
179
+ HttpValidationProblemDetails | list[str]
180
+ """
181
+
182
+ return (
183
+ await asyncio_detailed(
184
+ client=client,
185
+ field=field,
186
+ subject_id=subject_id,
187
+ )
188
+ ).parsed
@@ -0,0 +1,199 @@
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.behavior_curriculum_settings_version_response import (
12
+ BehaviorCurriculumSettingsVersionResponse,
13
+ )
14
+ from ...models.http_validation_problem_details import HttpValidationProblemDetails
15
+ from ...types import UNSET, Unset
16
+ from typing import cast
17
+
18
+
19
+ def _get_kwargs(
20
+ *,
21
+ subject_id: str | Unset = UNSET,
22
+ limit: int | None | Unset = UNSET,
23
+ ) -> dict[str, Any]:
24
+
25
+ params: dict[str, Any] = {}
26
+
27
+ params["subject_id"] = subject_id
28
+
29
+ json_limit: int | None | Unset
30
+ if isinstance(limit, Unset):
31
+ json_limit = UNSET
32
+ else:
33
+ json_limit = limit
34
+ params["limit"] = json_limit
35
+
36
+ params = {k: v for k, v in params.items() if v is not UNSET and v is not None}
37
+
38
+ _kwargs: dict[str, Any] = {
39
+ "method": "get",
40
+ "url": "/api/v1/settings/behavior-curriculum",
41
+ "params": params,
42
+ }
43
+
44
+ return _kwargs
45
+
46
+
47
+ def _parse_response(
48
+ *, client: AuthenticatedClient | Client, response: httpx.Response
49
+ ) -> HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse] | None:
50
+ if response.status_code == 200:
51
+ response_200 = []
52
+ _response_200 = response.json()
53
+ for response_200_item_data in _response_200:
54
+ response_200_item = BehaviorCurriculumSettingsVersionResponse.from_dict(
55
+ response_200_item_data
56
+ )
57
+
58
+ response_200.append(response_200_item)
59
+
60
+ return response_200
61
+
62
+ if response.status_code == 422:
63
+ response_422 = HttpValidationProblemDetails.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[HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]]:
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
+ *,
86
+ client: AuthenticatedClient,
87
+ subject_id: str | Unset = UNSET,
88
+ limit: int | None | Unset = UNSET,
89
+ ) -> Response[HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]]:
90
+ """All behavior_curriculum settings versions, live and superseded, newest first.
91
+
92
+ Args:
93
+ subject_id (str | Unset):
94
+ limit (int | None | Unset):
95
+
96
+ Raises:
97
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
98
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
99
+
100
+ Returns:
101
+ Response[HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]]
102
+ """
103
+
104
+ kwargs = _get_kwargs(
105
+ subject_id=subject_id,
106
+ limit=limit,
107
+ )
108
+
109
+ response = client.get_httpx_client().request(
110
+ **kwargs,
111
+ )
112
+
113
+ return _build_response(client=client, response=response)
114
+
115
+
116
+ def sync(
117
+ *,
118
+ client: AuthenticatedClient,
119
+ subject_id: str | Unset = UNSET,
120
+ limit: int | None | Unset = UNSET,
121
+ ) -> HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse] | None:
122
+ """All behavior_curriculum settings versions, live and superseded, newest first.
123
+
124
+ Args:
125
+ subject_id (str | Unset):
126
+ limit (int | None | Unset):
127
+
128
+ Raises:
129
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
130
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
131
+
132
+ Returns:
133
+ HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]
134
+ """
135
+
136
+ return sync_detailed(
137
+ client=client,
138
+ subject_id=subject_id,
139
+ limit=limit,
140
+ ).parsed
141
+
142
+
143
+ async def asyncio_detailed(
144
+ *,
145
+ client: AuthenticatedClient,
146
+ subject_id: str | Unset = UNSET,
147
+ limit: int | None | Unset = UNSET,
148
+ ) -> Response[HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]]:
149
+ """All behavior_curriculum settings versions, live and superseded, newest first.
150
+
151
+ Args:
152
+ subject_id (str | Unset):
153
+ limit (int | None | Unset):
154
+
155
+ Raises:
156
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
157
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
158
+
159
+ Returns:
160
+ Response[HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]]
161
+ """
162
+
163
+ kwargs = _get_kwargs(
164
+ subject_id=subject_id,
165
+ limit=limit,
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
+ subject_id: str | Unset = UNSET,
177
+ limit: int | None | Unset = UNSET,
178
+ ) -> HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse] | None:
179
+ """All behavior_curriculum settings versions, live and superseded, newest first.
180
+
181
+ Args:
182
+ subject_id (str | Unset):
183
+ limit (int | None | Unset):
184
+
185
+ Raises:
186
+ errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True.
187
+ httpx.TimeoutException: If the request takes longer than Client.timeout.
188
+
189
+ Returns:
190
+ HttpValidationProblemDetails | list[BehaviorCurriculumSettingsVersionResponse]
191
+ """
192
+
193
+ return (
194
+ await asyncio_detailed(
195
+ client=client,
196
+ subject_id=subject_id,
197
+ limit=limit,
198
+ )
199
+ ).parsed