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