mirascope 2.0.0__py3-none-any.whl → 2.0.0a1__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 (443) hide show
  1. mirascope/__init__.py +2 -11
  2. mirascope/graphs/__init__.py +22 -0
  3. mirascope/graphs/finite_state_machine.py +625 -0
  4. mirascope/llm/__init__.py +15 -96
  5. mirascope/llm/agents/__init__.py +15 -0
  6. mirascope/llm/agents/agent.py +97 -0
  7. mirascope/llm/agents/agent_template.py +45 -0
  8. mirascope/llm/agents/decorator.py +176 -0
  9. mirascope/llm/calls/__init__.py +1 -2
  10. mirascope/llm/calls/base_call.py +33 -0
  11. mirascope/llm/calls/calls.py +58 -84
  12. mirascope/llm/calls/decorator.py +120 -140
  13. mirascope/llm/clients/__init__.py +34 -0
  14. mirascope/llm/clients/_missing_import_stubs.py +47 -0
  15. mirascope/llm/clients/anthropic/__init__.py +25 -0
  16. mirascope/llm/{providers/openai/completions → clients/anthropic}/_utils/__init__.py +0 -2
  17. mirascope/llm/{providers → clients}/anthropic/_utils/decode.py +22 -66
  18. mirascope/llm/clients/anthropic/_utils/encode.py +243 -0
  19. mirascope/llm/clients/anthropic/clients.py +819 -0
  20. mirascope/llm/clients/anthropic/model_ids.py +8 -0
  21. mirascope/llm/{providers → clients}/base/__init__.py +5 -4
  22. mirascope/llm/{providers → clients}/base/_utils.py +17 -78
  23. mirascope/llm/{providers/base/base_provider.py → clients/base/client.py} +145 -468
  24. mirascope/llm/{models → clients/base}/params.py +37 -16
  25. mirascope/llm/clients/google/__init__.py +20 -0
  26. mirascope/llm/{providers/openai/responses → clients/google}/_utils/__init__.py +0 -2
  27. mirascope/llm/{providers → clients}/google/_utils/decode.py +22 -98
  28. mirascope/llm/{providers → clients}/google/_utils/encode.py +46 -168
  29. mirascope/llm/clients/google/clients.py +853 -0
  30. mirascope/llm/clients/google/model_ids.py +15 -0
  31. mirascope/llm/clients/openai/__init__.py +25 -0
  32. mirascope/llm/clients/openai/completions/__init__.py +28 -0
  33. mirascope/llm/{providers/google → clients/openai/completions}/_utils/__init__.py +0 -4
  34. mirascope/llm/{providers → clients}/openai/completions/_utils/decode.py +9 -74
  35. mirascope/llm/{providers → clients}/openai/completions/_utils/encode.py +52 -70
  36. mirascope/llm/clients/openai/completions/_utils/model_features.py +81 -0
  37. mirascope/llm/clients/openai/completions/clients.py +833 -0
  38. mirascope/llm/clients/openai/completions/model_ids.py +8 -0
  39. mirascope/llm/clients/openai/responses/__init__.py +26 -0
  40. mirascope/llm/clients/openai/responses/_utils/__init__.py +13 -0
  41. mirascope/llm/{providers → clients}/openai/responses/_utils/decode.py +14 -80
  42. mirascope/llm/{providers → clients}/openai/responses/_utils/encode.py +41 -92
  43. mirascope/llm/clients/openai/responses/_utils/model_features.py +87 -0
  44. mirascope/llm/clients/openai/responses/clients.py +832 -0
  45. mirascope/llm/clients/openai/responses/model_ids.py +8 -0
  46. mirascope/llm/clients/openai/shared/__init__.py +7 -0
  47. mirascope/llm/clients/openai/shared/_utils.py +55 -0
  48. mirascope/llm/clients/providers.py +175 -0
  49. mirascope/llm/content/__init__.py +2 -3
  50. mirascope/llm/content/tool_call.py +0 -6
  51. mirascope/llm/content/tool_output.py +5 -22
  52. mirascope/llm/context/_utils.py +6 -19
  53. mirascope/llm/exceptions.py +43 -298
  54. mirascope/llm/formatting/__init__.py +2 -19
  55. mirascope/llm/formatting/_utils.py +74 -0
  56. mirascope/llm/formatting/format.py +30 -219
  57. mirascope/llm/formatting/from_call_args.py +2 -2
  58. mirascope/llm/formatting/partial.py +7 -80
  59. mirascope/llm/formatting/types.py +64 -21
  60. mirascope/llm/mcp/__init__.py +2 -2
  61. mirascope/llm/mcp/client.py +118 -0
  62. mirascope/llm/messages/__init__.py +0 -3
  63. mirascope/llm/messages/message.py +5 -13
  64. mirascope/llm/models/__init__.py +2 -7
  65. mirascope/llm/models/models.py +139 -315
  66. mirascope/llm/prompts/__init__.py +12 -13
  67. mirascope/llm/prompts/_utils.py +43 -14
  68. mirascope/llm/prompts/decorator.py +204 -144
  69. mirascope/llm/prompts/protocols.py +59 -25
  70. mirascope/llm/responses/__init__.py +1 -9
  71. mirascope/llm/responses/_utils.py +12 -102
  72. mirascope/llm/responses/base_response.py +6 -18
  73. mirascope/llm/responses/base_stream_response.py +50 -173
  74. mirascope/llm/responses/finish_reason.py +0 -1
  75. mirascope/llm/responses/response.py +13 -34
  76. mirascope/llm/responses/root_response.py +29 -100
  77. mirascope/llm/responses/stream_response.py +31 -40
  78. mirascope/llm/tools/__init__.py +2 -9
  79. mirascope/llm/tools/_utils.py +3 -12
  80. mirascope/llm/tools/decorator.py +16 -25
  81. mirascope/llm/tools/protocols.py +4 -4
  82. mirascope/llm/tools/tool_schema.py +19 -87
  83. mirascope/llm/tools/toolkit.py +27 -35
  84. mirascope/llm/tools/tools.py +41 -135
  85. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/METADATA +13 -90
  86. mirascope-2.0.0a1.dist-info/RECORD +102 -0
  87. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/WHEEL +1 -1
  88. {mirascope-2.0.0.dist-info → mirascope-2.0.0a1.dist-info}/licenses/LICENSE +1 -1
  89. mirascope/_stubs.py +0 -363
  90. mirascope/api/__init__.py +0 -14
  91. mirascope/api/_generated/README.md +0 -207
  92. mirascope/api/_generated/__init__.py +0 -440
  93. mirascope/api/_generated/annotations/__init__.py +0 -33
  94. mirascope/api/_generated/annotations/client.py +0 -506
  95. mirascope/api/_generated/annotations/raw_client.py +0 -1414
  96. mirascope/api/_generated/annotations/types/__init__.py +0 -31
  97. mirascope/api/_generated/annotations/types/annotations_create_request_label.py +0 -5
  98. mirascope/api/_generated/annotations/types/annotations_create_response.py +0 -48
  99. mirascope/api/_generated/annotations/types/annotations_create_response_label.py +0 -5
  100. mirascope/api/_generated/annotations/types/annotations_get_response.py +0 -48
  101. mirascope/api/_generated/annotations/types/annotations_get_response_label.py +0 -5
  102. mirascope/api/_generated/annotations/types/annotations_list_request_label.py +0 -5
  103. mirascope/api/_generated/annotations/types/annotations_list_response.py +0 -21
  104. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +0 -50
  105. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item_label.py +0 -5
  106. mirascope/api/_generated/annotations/types/annotations_update_request_label.py +0 -5
  107. mirascope/api/_generated/annotations/types/annotations_update_response.py +0 -48
  108. mirascope/api/_generated/annotations/types/annotations_update_response_label.py +0 -5
  109. mirascope/api/_generated/api_keys/__init__.py +0 -17
  110. mirascope/api/_generated/api_keys/client.py +0 -530
  111. mirascope/api/_generated/api_keys/raw_client.py +0 -1236
  112. mirascope/api/_generated/api_keys/types/__init__.py +0 -15
  113. mirascope/api/_generated/api_keys/types/api_keys_create_response.py +0 -28
  114. mirascope/api/_generated/api_keys/types/api_keys_get_response.py +0 -27
  115. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +0 -40
  116. mirascope/api/_generated/api_keys/types/api_keys_list_response_item.py +0 -27
  117. mirascope/api/_generated/client.py +0 -211
  118. mirascope/api/_generated/core/__init__.py +0 -52
  119. mirascope/api/_generated/core/api_error.py +0 -23
  120. mirascope/api/_generated/core/client_wrapper.py +0 -46
  121. mirascope/api/_generated/core/datetime_utils.py +0 -28
  122. mirascope/api/_generated/core/file.py +0 -67
  123. mirascope/api/_generated/core/force_multipart.py +0 -16
  124. mirascope/api/_generated/core/http_client.py +0 -543
  125. mirascope/api/_generated/core/http_response.py +0 -55
  126. mirascope/api/_generated/core/jsonable_encoder.py +0 -100
  127. mirascope/api/_generated/core/pydantic_utilities.py +0 -255
  128. mirascope/api/_generated/core/query_encoder.py +0 -58
  129. mirascope/api/_generated/core/remove_none_from_dict.py +0 -11
  130. mirascope/api/_generated/core/request_options.py +0 -35
  131. mirascope/api/_generated/core/serialization.py +0 -276
  132. mirascope/api/_generated/docs/__init__.py +0 -4
  133. mirascope/api/_generated/docs/client.py +0 -91
  134. mirascope/api/_generated/docs/raw_client.py +0 -178
  135. mirascope/api/_generated/environment.py +0 -9
  136. mirascope/api/_generated/environments/__init__.py +0 -23
  137. mirascope/api/_generated/environments/client.py +0 -649
  138. mirascope/api/_generated/environments/raw_client.py +0 -1567
  139. mirascope/api/_generated/environments/types/__init__.py +0 -25
  140. mirascope/api/_generated/environments/types/environments_create_response.py +0 -24
  141. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +0 -60
  142. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +0 -24
  143. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_models_item.py +0 -22
  144. mirascope/api/_generated/environments/types/environments_get_response.py +0 -24
  145. mirascope/api/_generated/environments/types/environments_list_response_item.py +0 -24
  146. mirascope/api/_generated/environments/types/environments_update_response.py +0 -24
  147. mirascope/api/_generated/errors/__init__.py +0 -25
  148. mirascope/api/_generated/errors/bad_request_error.py +0 -14
  149. mirascope/api/_generated/errors/conflict_error.py +0 -14
  150. mirascope/api/_generated/errors/forbidden_error.py +0 -11
  151. mirascope/api/_generated/errors/internal_server_error.py +0 -10
  152. mirascope/api/_generated/errors/not_found_error.py +0 -11
  153. mirascope/api/_generated/errors/payment_required_error.py +0 -15
  154. mirascope/api/_generated/errors/service_unavailable_error.py +0 -14
  155. mirascope/api/_generated/errors/too_many_requests_error.py +0 -15
  156. mirascope/api/_generated/errors/unauthorized_error.py +0 -11
  157. mirascope/api/_generated/functions/__init__.py +0 -39
  158. mirascope/api/_generated/functions/client.py +0 -647
  159. mirascope/api/_generated/functions/raw_client.py +0 -1890
  160. mirascope/api/_generated/functions/types/__init__.py +0 -53
  161. mirascope/api/_generated/functions/types/functions_create_request_dependencies_value.py +0 -20
  162. mirascope/api/_generated/functions/types/functions_create_response.py +0 -37
  163. mirascope/api/_generated/functions/types/functions_create_response_dependencies_value.py +0 -20
  164. mirascope/api/_generated/functions/types/functions_find_by_hash_response.py +0 -39
  165. mirascope/api/_generated/functions/types/functions_find_by_hash_response_dependencies_value.py +0 -20
  166. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +0 -53
  167. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +0 -22
  168. mirascope/api/_generated/functions/types/functions_get_response.py +0 -37
  169. mirascope/api/_generated/functions/types/functions_get_response_dependencies_value.py +0 -20
  170. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +0 -25
  171. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +0 -56
  172. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +0 -22
  173. mirascope/api/_generated/functions/types/functions_list_response.py +0 -21
  174. mirascope/api/_generated/functions/types/functions_list_response_functions_item.py +0 -41
  175. mirascope/api/_generated/functions/types/functions_list_response_functions_item_dependencies_value.py +0 -20
  176. mirascope/api/_generated/health/__init__.py +0 -7
  177. mirascope/api/_generated/health/client.py +0 -92
  178. mirascope/api/_generated/health/raw_client.py +0 -175
  179. mirascope/api/_generated/health/types/__init__.py +0 -8
  180. mirascope/api/_generated/health/types/health_check_response.py +0 -22
  181. mirascope/api/_generated/health/types/health_check_response_status.py +0 -5
  182. mirascope/api/_generated/organization_invitations/__init__.py +0 -33
  183. mirascope/api/_generated/organization_invitations/client.py +0 -546
  184. mirascope/api/_generated/organization_invitations/raw_client.py +0 -1519
  185. mirascope/api/_generated/organization_invitations/types/__init__.py +0 -53
  186. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +0 -34
  187. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +0 -7
  188. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +0 -7
  189. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +0 -48
  190. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +0 -7
  191. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +0 -7
  192. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +0 -48
  193. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +0 -7
  194. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +0 -7
  195. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +0 -48
  196. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +0 -7
  197. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +0 -7
  198. mirascope/api/_generated/organization_memberships/__init__.py +0 -19
  199. mirascope/api/_generated/organization_memberships/client.py +0 -302
  200. mirascope/api/_generated/organization_memberships/raw_client.py +0 -736
  201. mirascope/api/_generated/organization_memberships/types/__init__.py +0 -27
  202. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +0 -33
  203. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +0 -7
  204. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +0 -7
  205. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +0 -31
  206. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +0 -7
  207. mirascope/api/_generated/organizations/__init__.py +0 -51
  208. mirascope/api/_generated/organizations/client.py +0 -869
  209. mirascope/api/_generated/organizations/raw_client.py +0 -2593
  210. mirascope/api/_generated/organizations/types/__init__.py +0 -71
  211. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +0 -24
  212. mirascope/api/_generated/organizations/types/organizations_create_response.py +0 -26
  213. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +0 -5
  214. mirascope/api/_generated/organizations/types/organizations_get_response.py +0 -26
  215. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +0 -5
  216. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +0 -26
  217. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +0 -5
  218. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +0 -7
  219. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +0 -47
  220. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +0 -33
  221. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +0 -7
  222. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +0 -24
  223. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +0 -53
  224. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +0 -7
  225. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +0 -26
  226. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +0 -34
  227. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +0 -7
  228. mirascope/api/_generated/organizations/types/organizations_update_response.py +0 -26
  229. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +0 -5
  230. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +0 -7
  231. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +0 -35
  232. mirascope/api/_generated/project_memberships/__init__.py +0 -25
  233. mirascope/api/_generated/project_memberships/client.py +0 -437
  234. mirascope/api/_generated/project_memberships/raw_client.py +0 -1039
  235. mirascope/api/_generated/project_memberships/types/__init__.py +0 -29
  236. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +0 -7
  237. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +0 -35
  238. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +0 -7
  239. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +0 -33
  240. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +0 -7
  241. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +0 -7
  242. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +0 -35
  243. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +0 -7
  244. mirascope/api/_generated/projects/__init__.py +0 -7
  245. mirascope/api/_generated/projects/client.py +0 -428
  246. mirascope/api/_generated/projects/raw_client.py +0 -1302
  247. mirascope/api/_generated/projects/types/__init__.py +0 -10
  248. mirascope/api/_generated/projects/types/projects_create_response.py +0 -25
  249. mirascope/api/_generated/projects/types/projects_get_response.py +0 -25
  250. mirascope/api/_generated/projects/types/projects_list_response_item.py +0 -25
  251. mirascope/api/_generated/projects/types/projects_update_response.py +0 -25
  252. mirascope/api/_generated/reference.md +0 -4915
  253. mirascope/api/_generated/tags/__init__.py +0 -19
  254. mirascope/api/_generated/tags/client.py +0 -504
  255. mirascope/api/_generated/tags/raw_client.py +0 -1288
  256. mirascope/api/_generated/tags/types/__init__.py +0 -17
  257. mirascope/api/_generated/tags/types/tags_create_response.py +0 -41
  258. mirascope/api/_generated/tags/types/tags_get_response.py +0 -41
  259. mirascope/api/_generated/tags/types/tags_list_response.py +0 -23
  260. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +0 -41
  261. mirascope/api/_generated/tags/types/tags_update_response.py +0 -41
  262. mirascope/api/_generated/token_cost/__init__.py +0 -7
  263. mirascope/api/_generated/token_cost/client.py +0 -160
  264. mirascope/api/_generated/token_cost/raw_client.py +0 -264
  265. mirascope/api/_generated/token_cost/types/__init__.py +0 -8
  266. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +0 -54
  267. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +0 -52
  268. mirascope/api/_generated/traces/__init__.py +0 -97
  269. mirascope/api/_generated/traces/client.py +0 -1103
  270. mirascope/api/_generated/traces/raw_client.py +0 -2322
  271. mirascope/api/_generated/traces/types/__init__.py +0 -155
  272. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +0 -29
  273. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +0 -27
  274. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +0 -23
  275. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +0 -38
  276. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +0 -19
  277. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +0 -22
  278. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +0 -20
  279. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +0 -29
  280. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +0 -31
  281. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +0 -23
  282. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +0 -38
  283. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +0 -19
  284. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +0 -22
  285. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item.py +0 -22
  286. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +0 -48
  287. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +0 -23
  288. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +0 -38
  289. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +0 -19
  290. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +0 -24
  291. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item.py +0 -22
  292. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +0 -20
  293. mirascope/api/_generated/traces/types/traces_create_response.py +0 -24
  294. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +0 -22
  295. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +0 -60
  296. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_functions_item.py +0 -24
  297. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response_top_models_item.py +0 -22
  298. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +0 -33
  299. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +0 -88
  300. mirascope/api/_generated/traces/types/traces_get_trace_detail_response.py +0 -33
  301. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -88
  302. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +0 -25
  303. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +0 -44
  304. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +0 -26
  305. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +0 -7
  306. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +0 -7
  307. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +0 -7
  308. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +0 -26
  309. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +0 -50
  310. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item.py +0 -26
  311. mirascope/api/_generated/traces/types/traces_search_request_attribute_filters_item_operator.py +0 -7
  312. mirascope/api/_generated/traces/types/traces_search_request_sort_by.py +0 -7
  313. mirascope/api/_generated/traces/types/traces_search_request_sort_order.py +0 -5
  314. mirascope/api/_generated/traces/types/traces_search_response.py +0 -26
  315. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +0 -50
  316. mirascope/api/_generated/types/__init__.py +0 -85
  317. mirascope/api/_generated/types/already_exists_error.py +0 -22
  318. mirascope/api/_generated/types/already_exists_error_tag.py +0 -5
  319. mirascope/api/_generated/types/bad_request_error_body.py +0 -50
  320. mirascope/api/_generated/types/click_house_error.py +0 -22
  321. mirascope/api/_generated/types/database_error.py +0 -22
  322. mirascope/api/_generated/types/database_error_tag.py +0 -5
  323. mirascope/api/_generated/types/date.py +0 -3
  324. mirascope/api/_generated/types/http_api_decode_error.py +0 -27
  325. mirascope/api/_generated/types/http_api_decode_error_tag.py +0 -5
  326. mirascope/api/_generated/types/immutable_resource_error.py +0 -22
  327. mirascope/api/_generated/types/internal_server_error_body.py +0 -49
  328. mirascope/api/_generated/types/issue.py +0 -38
  329. mirascope/api/_generated/types/issue_tag.py +0 -10
  330. mirascope/api/_generated/types/not_found_error_body.py +0 -22
  331. mirascope/api/_generated/types/not_found_error_tag.py +0 -5
  332. mirascope/api/_generated/types/number_from_string.py +0 -3
  333. mirascope/api/_generated/types/permission_denied_error.py +0 -22
  334. mirascope/api/_generated/types/permission_denied_error_tag.py +0 -5
  335. mirascope/api/_generated/types/plan_limit_exceeded_error.py +0 -32
  336. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +0 -7
  337. mirascope/api/_generated/types/pricing_unavailable_error.py +0 -23
  338. mirascope/api/_generated/types/property_key.py +0 -7
  339. mirascope/api/_generated/types/property_key_key.py +0 -25
  340. mirascope/api/_generated/types/property_key_key_tag.py +0 -5
  341. mirascope/api/_generated/types/rate_limit_error.py +0 -31
  342. mirascope/api/_generated/types/rate_limit_error_tag.py +0 -5
  343. mirascope/api/_generated/types/service_unavailable_error_body.py +0 -24
  344. mirascope/api/_generated/types/service_unavailable_error_tag.py +0 -7
  345. mirascope/api/_generated/types/stripe_error.py +0 -20
  346. mirascope/api/_generated/types/subscription_past_due_error.py +0 -31
  347. mirascope/api/_generated/types/subscription_past_due_error_tag.py +0 -7
  348. mirascope/api/_generated/types/unauthorized_error_body.py +0 -21
  349. mirascope/api/_generated/types/unauthorized_error_tag.py +0 -5
  350. mirascope/api/client.py +0 -255
  351. mirascope/api/settings.py +0 -99
  352. mirascope/llm/formatting/output_parser.py +0 -178
  353. mirascope/llm/formatting/primitives.py +0 -192
  354. mirascope/llm/mcp/mcp_client.py +0 -130
  355. mirascope/llm/messages/_utils.py +0 -34
  356. mirascope/llm/models/thinking_config.py +0 -61
  357. mirascope/llm/prompts/prompts.py +0 -487
  358. mirascope/llm/providers/__init__.py +0 -62
  359. mirascope/llm/providers/anthropic/__init__.py +0 -11
  360. mirascope/llm/providers/anthropic/_utils/__init__.py +0 -27
  361. mirascope/llm/providers/anthropic/_utils/beta_decode.py +0 -282
  362. mirascope/llm/providers/anthropic/_utils/beta_encode.py +0 -266
  363. mirascope/llm/providers/anthropic/_utils/encode.py +0 -418
  364. mirascope/llm/providers/anthropic/_utils/errors.py +0 -46
  365. mirascope/llm/providers/anthropic/beta_provider.py +0 -374
  366. mirascope/llm/providers/anthropic/model_id.py +0 -23
  367. mirascope/llm/providers/anthropic/model_info.py +0 -87
  368. mirascope/llm/providers/anthropic/provider.py +0 -479
  369. mirascope/llm/providers/google/__init__.py +0 -6
  370. mirascope/llm/providers/google/_utils/errors.py +0 -50
  371. mirascope/llm/providers/google/model_id.py +0 -22
  372. mirascope/llm/providers/google/model_info.py +0 -63
  373. mirascope/llm/providers/google/provider.py +0 -492
  374. mirascope/llm/providers/mirascope/__init__.py +0 -5
  375. mirascope/llm/providers/mirascope/_utils.py +0 -73
  376. mirascope/llm/providers/mirascope/provider.py +0 -349
  377. mirascope/llm/providers/mlx/__init__.py +0 -9
  378. mirascope/llm/providers/mlx/_utils.py +0 -141
  379. mirascope/llm/providers/mlx/encoding/__init__.py +0 -8
  380. mirascope/llm/providers/mlx/encoding/base.py +0 -72
  381. mirascope/llm/providers/mlx/encoding/transformers.py +0 -150
  382. mirascope/llm/providers/mlx/mlx.py +0 -254
  383. mirascope/llm/providers/mlx/model_id.py +0 -17
  384. mirascope/llm/providers/mlx/provider.py +0 -452
  385. mirascope/llm/providers/model_id.py +0 -16
  386. mirascope/llm/providers/ollama/__init__.py +0 -7
  387. mirascope/llm/providers/ollama/provider.py +0 -71
  388. mirascope/llm/providers/openai/__init__.py +0 -15
  389. mirascope/llm/providers/openai/_utils/__init__.py +0 -5
  390. mirascope/llm/providers/openai/_utils/errors.py +0 -46
  391. mirascope/llm/providers/openai/completions/__init__.py +0 -7
  392. mirascope/llm/providers/openai/completions/base_provider.py +0 -542
  393. mirascope/llm/providers/openai/completions/provider.py +0 -22
  394. mirascope/llm/providers/openai/model_id.py +0 -31
  395. mirascope/llm/providers/openai/model_info.py +0 -303
  396. mirascope/llm/providers/openai/provider.py +0 -441
  397. mirascope/llm/providers/openai/responses/__init__.py +0 -5
  398. mirascope/llm/providers/openai/responses/provider.py +0 -513
  399. mirascope/llm/providers/provider_id.py +0 -24
  400. mirascope/llm/providers/provider_registry.py +0 -299
  401. mirascope/llm/providers/together/__init__.py +0 -7
  402. mirascope/llm/providers/together/provider.py +0 -40
  403. mirascope/llm/responses/usage.py +0 -95
  404. mirascope/ops/__init__.py +0 -111
  405. mirascope/ops/_internal/__init__.py +0 -5
  406. mirascope/ops/_internal/closure.py +0 -1169
  407. mirascope/ops/_internal/configuration.py +0 -177
  408. mirascope/ops/_internal/context.py +0 -76
  409. mirascope/ops/_internal/exporters/__init__.py +0 -26
  410. mirascope/ops/_internal/exporters/exporters.py +0 -395
  411. mirascope/ops/_internal/exporters/processors.py +0 -104
  412. mirascope/ops/_internal/exporters/types.py +0 -165
  413. mirascope/ops/_internal/exporters/utils.py +0 -29
  414. mirascope/ops/_internal/instrumentation/__init__.py +0 -8
  415. mirascope/ops/_internal/instrumentation/llm/__init__.py +0 -8
  416. mirascope/ops/_internal/instrumentation/llm/common.py +0 -530
  417. mirascope/ops/_internal/instrumentation/llm/cost.py +0 -190
  418. mirascope/ops/_internal/instrumentation/llm/encode.py +0 -238
  419. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +0 -38
  420. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +0 -31
  421. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +0 -38
  422. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +0 -18
  423. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +0 -100
  424. mirascope/ops/_internal/instrumentation/llm/llm.py +0 -161
  425. mirascope/ops/_internal/instrumentation/llm/model.py +0 -1798
  426. mirascope/ops/_internal/instrumentation/llm/response.py +0 -521
  427. mirascope/ops/_internal/instrumentation/llm/serialize.py +0 -300
  428. mirascope/ops/_internal/propagation.py +0 -198
  429. mirascope/ops/_internal/protocols.py +0 -133
  430. mirascope/ops/_internal/session.py +0 -139
  431. mirascope/ops/_internal/spans.py +0 -232
  432. mirascope/ops/_internal/traced_calls.py +0 -375
  433. mirascope/ops/_internal/traced_functions.py +0 -523
  434. mirascope/ops/_internal/tracing.py +0 -353
  435. mirascope/ops/_internal/types.py +0 -13
  436. mirascope/ops/_internal/utils.py +0 -123
  437. mirascope/ops/_internal/versioned_calls.py +0 -512
  438. mirascope/ops/_internal/versioned_functions.py +0 -357
  439. mirascope/ops/_internal/versioning.py +0 -303
  440. mirascope/ops/exceptions.py +0 -21
  441. mirascope-2.0.0.dist-info/RECORD +0 -423
  442. /mirascope/llm/{providers → clients}/base/kwargs.py +0 -0
  443. /mirascope/llm/{providers → clients}/google/message.py +0 -0
@@ -1,1236 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
- from json.decoder import JSONDecodeError
5
-
6
- from ..core.api_error import ApiError
7
- from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
- from ..core.http_response import AsyncHttpResponse, HttpResponse
9
- from ..core.jsonable_encoder import jsonable_encoder
10
- from ..core.pydantic_utilities import parse_obj_as
11
- from ..core.request_options import RequestOptions
12
- from ..errors.bad_request_error import BadRequestError
13
- from ..errors.conflict_error import ConflictError
14
- from ..errors.forbidden_error import ForbiddenError
15
- from ..errors.internal_server_error import InternalServerError
16
- from ..errors.not_found_error import NotFoundError
17
- from ..errors.service_unavailable_error import ServiceUnavailableError
18
- from ..errors.too_many_requests_error import TooManyRequestsError
19
- from ..types.not_found_error_body import NotFoundErrorBody
20
- from ..types.permission_denied_error import PermissionDeniedError
21
- from ..types.rate_limit_error import RateLimitError
22
- from .types.api_keys_create_response import ApiKeysCreateResponse
23
- from .types.api_keys_get_response import ApiKeysGetResponse
24
- from .types.api_keys_list_all_for_org_response_item import (
25
- ApiKeysListAllForOrgResponseItem,
26
- )
27
- from .types.api_keys_list_response_item import ApiKeysListResponseItem
28
-
29
- # this is used as the default value for optional parameters
30
- OMIT = typing.cast(typing.Any, ...)
31
-
32
-
33
- class RawApiKeysClient:
34
- def __init__(self, *, client_wrapper: SyncClientWrapper):
35
- self._client_wrapper = client_wrapper
36
-
37
- def api_keys_list_all_for_org(
38
- self,
39
- organization_id: str,
40
- *,
41
- request_options: typing.Optional[RequestOptions] = None,
42
- ) -> HttpResponse[typing.List[ApiKeysListAllForOrgResponseItem]]:
43
- """
44
- Parameters
45
- ----------
46
- organization_id : str
47
-
48
- request_options : typing.Optional[RequestOptions]
49
- Request-specific configuration.
50
-
51
- Returns
52
- -------
53
- HttpResponse[typing.List[ApiKeysListAllForOrgResponseItem]]
54
- Success
55
- """
56
- _response = self._client_wrapper.httpx_client.request(
57
- f"organizations/{jsonable_encoder(organization_id)}/api-keys",
58
- method="GET",
59
- request_options=request_options,
60
- )
61
- try:
62
- if 200 <= _response.status_code < 300:
63
- _data = typing.cast(
64
- typing.List[ApiKeysListAllForOrgResponseItem],
65
- parse_obj_as(
66
- type_=typing.List[ApiKeysListAllForOrgResponseItem], # type: ignore
67
- object_=_response.json(),
68
- ),
69
- )
70
- return HttpResponse(response=_response, data=_data)
71
- if _response.status_code == 400:
72
- raise BadRequestError(
73
- headers=dict(_response.headers),
74
- body=typing.cast(
75
- typing.Optional[typing.Any],
76
- parse_obj_as(
77
- type_=typing.Optional[typing.Any], # type: ignore
78
- object_=_response.json(),
79
- ),
80
- ),
81
- )
82
- if _response.status_code == 404:
83
- raise NotFoundError(
84
- headers=dict(_response.headers),
85
- body=typing.cast(
86
- NotFoundErrorBody,
87
- parse_obj_as(
88
- type_=NotFoundErrorBody, # type: ignore
89
- object_=_response.json(),
90
- ),
91
- ),
92
- )
93
- if _response.status_code == 429:
94
- raise TooManyRequestsError(
95
- headers=dict(_response.headers),
96
- body=typing.cast(
97
- RateLimitError,
98
- parse_obj_as(
99
- type_=RateLimitError, # type: ignore
100
- object_=_response.json(),
101
- ),
102
- ),
103
- )
104
- if _response.status_code == 500:
105
- raise InternalServerError(
106
- headers=dict(_response.headers),
107
- body=typing.cast(
108
- typing.Optional[typing.Any],
109
- parse_obj_as(
110
- type_=typing.Optional[typing.Any], # type: ignore
111
- object_=_response.json(),
112
- ),
113
- ),
114
- )
115
- if _response.status_code == 503:
116
- raise ServiceUnavailableError(
117
- headers=dict(_response.headers),
118
- body=typing.cast(
119
- typing.Optional[typing.Any],
120
- parse_obj_as(
121
- type_=typing.Optional[typing.Any], # type: ignore
122
- object_=_response.json(),
123
- ),
124
- ),
125
- )
126
- _response_json = _response.json()
127
- except JSONDecodeError:
128
- raise ApiError(
129
- status_code=_response.status_code,
130
- headers=dict(_response.headers),
131
- body=_response.text,
132
- )
133
- raise ApiError(
134
- status_code=_response.status_code,
135
- headers=dict(_response.headers),
136
- body=_response_json,
137
- )
138
-
139
- def api_keys_list(
140
- self,
141
- organization_id: str,
142
- project_id: str,
143
- environment_id: str,
144
- *,
145
- request_options: typing.Optional[RequestOptions] = None,
146
- ) -> HttpResponse[typing.List[ApiKeysListResponseItem]]:
147
- """
148
- Parameters
149
- ----------
150
- organization_id : str
151
-
152
- project_id : str
153
-
154
- environment_id : str
155
-
156
- request_options : typing.Optional[RequestOptions]
157
- Request-specific configuration.
158
-
159
- Returns
160
- -------
161
- HttpResponse[typing.List[ApiKeysListResponseItem]]
162
- Success
163
- """
164
- _response = self._client_wrapper.httpx_client.request(
165
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys",
166
- method="GET",
167
- request_options=request_options,
168
- )
169
- try:
170
- if 200 <= _response.status_code < 300:
171
- _data = typing.cast(
172
- typing.List[ApiKeysListResponseItem],
173
- parse_obj_as(
174
- type_=typing.List[ApiKeysListResponseItem], # type: ignore
175
- object_=_response.json(),
176
- ),
177
- )
178
- return HttpResponse(response=_response, data=_data)
179
- if _response.status_code == 400:
180
- raise BadRequestError(
181
- headers=dict(_response.headers),
182
- body=typing.cast(
183
- typing.Optional[typing.Any],
184
- parse_obj_as(
185
- type_=typing.Optional[typing.Any], # type: ignore
186
- object_=_response.json(),
187
- ),
188
- ),
189
- )
190
- if _response.status_code == 403:
191
- raise ForbiddenError(
192
- headers=dict(_response.headers),
193
- body=typing.cast(
194
- PermissionDeniedError,
195
- parse_obj_as(
196
- type_=PermissionDeniedError, # type: ignore
197
- object_=_response.json(),
198
- ),
199
- ),
200
- )
201
- if _response.status_code == 404:
202
- raise NotFoundError(
203
- headers=dict(_response.headers),
204
- body=typing.cast(
205
- NotFoundErrorBody,
206
- parse_obj_as(
207
- type_=NotFoundErrorBody, # type: ignore
208
- object_=_response.json(),
209
- ),
210
- ),
211
- )
212
- if _response.status_code == 429:
213
- raise TooManyRequestsError(
214
- headers=dict(_response.headers),
215
- body=typing.cast(
216
- RateLimitError,
217
- parse_obj_as(
218
- type_=RateLimitError, # type: ignore
219
- object_=_response.json(),
220
- ),
221
- ),
222
- )
223
- if _response.status_code == 500:
224
- raise InternalServerError(
225
- headers=dict(_response.headers),
226
- body=typing.cast(
227
- typing.Optional[typing.Any],
228
- parse_obj_as(
229
- type_=typing.Optional[typing.Any], # type: ignore
230
- object_=_response.json(),
231
- ),
232
- ),
233
- )
234
- if _response.status_code == 503:
235
- raise ServiceUnavailableError(
236
- headers=dict(_response.headers),
237
- body=typing.cast(
238
- typing.Optional[typing.Any],
239
- parse_obj_as(
240
- type_=typing.Optional[typing.Any], # type: ignore
241
- object_=_response.json(),
242
- ),
243
- ),
244
- )
245
- _response_json = _response.json()
246
- except JSONDecodeError:
247
- raise ApiError(
248
- status_code=_response.status_code,
249
- headers=dict(_response.headers),
250
- body=_response.text,
251
- )
252
- raise ApiError(
253
- status_code=_response.status_code,
254
- headers=dict(_response.headers),
255
- body=_response_json,
256
- )
257
-
258
- def api_keys_create(
259
- self,
260
- organization_id: str,
261
- project_id: str,
262
- environment_id: str,
263
- *,
264
- name: str,
265
- request_options: typing.Optional[RequestOptions] = None,
266
- ) -> HttpResponse[ApiKeysCreateResponse]:
267
- """
268
- Parameters
269
- ----------
270
- organization_id : str
271
-
272
- project_id : str
273
-
274
- environment_id : str
275
-
276
- name : str
277
- a string at most 100 character(s) long
278
-
279
- request_options : typing.Optional[RequestOptions]
280
- Request-specific configuration.
281
-
282
- Returns
283
- -------
284
- HttpResponse[ApiKeysCreateResponse]
285
- Success
286
- """
287
- _response = self._client_wrapper.httpx_client.request(
288
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys",
289
- method="POST",
290
- json={
291
- "name": name,
292
- },
293
- headers={
294
- "content-type": "application/json",
295
- },
296
- request_options=request_options,
297
- omit=OMIT,
298
- )
299
- try:
300
- if 200 <= _response.status_code < 300:
301
- _data = typing.cast(
302
- ApiKeysCreateResponse,
303
- parse_obj_as(
304
- type_=ApiKeysCreateResponse, # type: ignore
305
- object_=_response.json(),
306
- ),
307
- )
308
- return HttpResponse(response=_response, data=_data)
309
- if _response.status_code == 400:
310
- raise BadRequestError(
311
- headers=dict(_response.headers),
312
- body=typing.cast(
313
- typing.Optional[typing.Any],
314
- parse_obj_as(
315
- type_=typing.Optional[typing.Any], # type: ignore
316
- object_=_response.json(),
317
- ),
318
- ),
319
- )
320
- if _response.status_code == 403:
321
- raise ForbiddenError(
322
- headers=dict(_response.headers),
323
- body=typing.cast(
324
- PermissionDeniedError,
325
- parse_obj_as(
326
- type_=PermissionDeniedError, # type: ignore
327
- object_=_response.json(),
328
- ),
329
- ),
330
- )
331
- if _response.status_code == 404:
332
- raise NotFoundError(
333
- headers=dict(_response.headers),
334
- body=typing.cast(
335
- NotFoundErrorBody,
336
- parse_obj_as(
337
- type_=NotFoundErrorBody, # type: ignore
338
- object_=_response.json(),
339
- ),
340
- ),
341
- )
342
- if _response.status_code == 409:
343
- raise ConflictError(
344
- headers=dict(_response.headers),
345
- body=typing.cast(
346
- typing.Optional[typing.Any],
347
- parse_obj_as(
348
- type_=typing.Optional[typing.Any], # type: ignore
349
- object_=_response.json(),
350
- ),
351
- ),
352
- )
353
- if _response.status_code == 429:
354
- raise TooManyRequestsError(
355
- headers=dict(_response.headers),
356
- body=typing.cast(
357
- RateLimitError,
358
- parse_obj_as(
359
- type_=RateLimitError, # type: ignore
360
- object_=_response.json(),
361
- ),
362
- ),
363
- )
364
- if _response.status_code == 500:
365
- raise InternalServerError(
366
- headers=dict(_response.headers),
367
- body=typing.cast(
368
- typing.Optional[typing.Any],
369
- parse_obj_as(
370
- type_=typing.Optional[typing.Any], # type: ignore
371
- object_=_response.json(),
372
- ),
373
- ),
374
- )
375
- if _response.status_code == 503:
376
- raise ServiceUnavailableError(
377
- headers=dict(_response.headers),
378
- body=typing.cast(
379
- typing.Optional[typing.Any],
380
- parse_obj_as(
381
- type_=typing.Optional[typing.Any], # type: ignore
382
- object_=_response.json(),
383
- ),
384
- ),
385
- )
386
- _response_json = _response.json()
387
- except JSONDecodeError:
388
- raise ApiError(
389
- status_code=_response.status_code,
390
- headers=dict(_response.headers),
391
- body=_response.text,
392
- )
393
- raise ApiError(
394
- status_code=_response.status_code,
395
- headers=dict(_response.headers),
396
- body=_response_json,
397
- )
398
-
399
- def api_keys_get(
400
- self,
401
- organization_id: str,
402
- project_id: str,
403
- environment_id: str,
404
- api_key_id: str,
405
- *,
406
- request_options: typing.Optional[RequestOptions] = None,
407
- ) -> HttpResponse[ApiKeysGetResponse]:
408
- """
409
- Parameters
410
- ----------
411
- organization_id : str
412
-
413
- project_id : str
414
-
415
- environment_id : str
416
-
417
- api_key_id : str
418
-
419
- request_options : typing.Optional[RequestOptions]
420
- Request-specific configuration.
421
-
422
- Returns
423
- -------
424
- HttpResponse[ApiKeysGetResponse]
425
- Success
426
- """
427
- _response = self._client_wrapper.httpx_client.request(
428
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys/{jsonable_encoder(api_key_id)}",
429
- method="GET",
430
- request_options=request_options,
431
- )
432
- try:
433
- if 200 <= _response.status_code < 300:
434
- _data = typing.cast(
435
- ApiKeysGetResponse,
436
- parse_obj_as(
437
- type_=ApiKeysGetResponse, # type: ignore
438
- object_=_response.json(),
439
- ),
440
- )
441
- return HttpResponse(response=_response, data=_data)
442
- if _response.status_code == 400:
443
- raise BadRequestError(
444
- headers=dict(_response.headers),
445
- body=typing.cast(
446
- typing.Optional[typing.Any],
447
- parse_obj_as(
448
- type_=typing.Optional[typing.Any], # type: ignore
449
- object_=_response.json(),
450
- ),
451
- ),
452
- )
453
- if _response.status_code == 403:
454
- raise ForbiddenError(
455
- headers=dict(_response.headers),
456
- body=typing.cast(
457
- PermissionDeniedError,
458
- parse_obj_as(
459
- type_=PermissionDeniedError, # type: ignore
460
- object_=_response.json(),
461
- ),
462
- ),
463
- )
464
- if _response.status_code == 404:
465
- raise NotFoundError(
466
- headers=dict(_response.headers),
467
- body=typing.cast(
468
- NotFoundErrorBody,
469
- parse_obj_as(
470
- type_=NotFoundErrorBody, # type: ignore
471
- object_=_response.json(),
472
- ),
473
- ),
474
- )
475
- if _response.status_code == 429:
476
- raise TooManyRequestsError(
477
- headers=dict(_response.headers),
478
- body=typing.cast(
479
- RateLimitError,
480
- parse_obj_as(
481
- type_=RateLimitError, # type: ignore
482
- object_=_response.json(),
483
- ),
484
- ),
485
- )
486
- if _response.status_code == 500:
487
- raise InternalServerError(
488
- headers=dict(_response.headers),
489
- body=typing.cast(
490
- typing.Optional[typing.Any],
491
- parse_obj_as(
492
- type_=typing.Optional[typing.Any], # type: ignore
493
- object_=_response.json(),
494
- ),
495
- ),
496
- )
497
- if _response.status_code == 503:
498
- raise ServiceUnavailableError(
499
- headers=dict(_response.headers),
500
- body=typing.cast(
501
- typing.Optional[typing.Any],
502
- parse_obj_as(
503
- type_=typing.Optional[typing.Any], # type: ignore
504
- object_=_response.json(),
505
- ),
506
- ),
507
- )
508
- _response_json = _response.json()
509
- except JSONDecodeError:
510
- raise ApiError(
511
- status_code=_response.status_code,
512
- headers=dict(_response.headers),
513
- body=_response.text,
514
- )
515
- raise ApiError(
516
- status_code=_response.status_code,
517
- headers=dict(_response.headers),
518
- body=_response_json,
519
- )
520
-
521
- def api_keys_delete(
522
- self,
523
- organization_id: str,
524
- project_id: str,
525
- environment_id: str,
526
- api_key_id: str,
527
- *,
528
- request_options: typing.Optional[RequestOptions] = None,
529
- ) -> HttpResponse[None]:
530
- """
531
- Parameters
532
- ----------
533
- organization_id : str
534
-
535
- project_id : str
536
-
537
- environment_id : str
538
-
539
- api_key_id : str
540
-
541
- request_options : typing.Optional[RequestOptions]
542
- Request-specific configuration.
543
-
544
- Returns
545
- -------
546
- HttpResponse[None]
547
- """
548
- _response = self._client_wrapper.httpx_client.request(
549
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys/{jsonable_encoder(api_key_id)}",
550
- method="DELETE",
551
- request_options=request_options,
552
- )
553
- try:
554
- if 200 <= _response.status_code < 300:
555
- return HttpResponse(response=_response, data=None)
556
- if _response.status_code == 400:
557
- raise BadRequestError(
558
- headers=dict(_response.headers),
559
- body=typing.cast(
560
- typing.Optional[typing.Any],
561
- parse_obj_as(
562
- type_=typing.Optional[typing.Any], # type: ignore
563
- object_=_response.json(),
564
- ),
565
- ),
566
- )
567
- if _response.status_code == 403:
568
- raise ForbiddenError(
569
- headers=dict(_response.headers),
570
- body=typing.cast(
571
- PermissionDeniedError,
572
- parse_obj_as(
573
- type_=PermissionDeniedError, # type: ignore
574
- object_=_response.json(),
575
- ),
576
- ),
577
- )
578
- if _response.status_code == 404:
579
- raise NotFoundError(
580
- headers=dict(_response.headers),
581
- body=typing.cast(
582
- NotFoundErrorBody,
583
- parse_obj_as(
584
- type_=NotFoundErrorBody, # type: ignore
585
- object_=_response.json(),
586
- ),
587
- ),
588
- )
589
- if _response.status_code == 429:
590
- raise TooManyRequestsError(
591
- headers=dict(_response.headers),
592
- body=typing.cast(
593
- RateLimitError,
594
- parse_obj_as(
595
- type_=RateLimitError, # type: ignore
596
- object_=_response.json(),
597
- ),
598
- ),
599
- )
600
- if _response.status_code == 500:
601
- raise InternalServerError(
602
- headers=dict(_response.headers),
603
- body=typing.cast(
604
- typing.Optional[typing.Any],
605
- parse_obj_as(
606
- type_=typing.Optional[typing.Any], # type: ignore
607
- object_=_response.json(),
608
- ),
609
- ),
610
- )
611
- if _response.status_code == 503:
612
- raise ServiceUnavailableError(
613
- headers=dict(_response.headers),
614
- body=typing.cast(
615
- typing.Optional[typing.Any],
616
- parse_obj_as(
617
- type_=typing.Optional[typing.Any], # type: ignore
618
- object_=_response.json(),
619
- ),
620
- ),
621
- )
622
- _response_json = _response.json()
623
- except JSONDecodeError:
624
- raise ApiError(
625
- status_code=_response.status_code,
626
- headers=dict(_response.headers),
627
- body=_response.text,
628
- )
629
- raise ApiError(
630
- status_code=_response.status_code,
631
- headers=dict(_response.headers),
632
- body=_response_json,
633
- )
634
-
635
-
636
- class AsyncRawApiKeysClient:
637
- def __init__(self, *, client_wrapper: AsyncClientWrapper):
638
- self._client_wrapper = client_wrapper
639
-
640
- async def api_keys_list_all_for_org(
641
- self,
642
- organization_id: str,
643
- *,
644
- request_options: typing.Optional[RequestOptions] = None,
645
- ) -> AsyncHttpResponse[typing.List[ApiKeysListAllForOrgResponseItem]]:
646
- """
647
- Parameters
648
- ----------
649
- organization_id : str
650
-
651
- request_options : typing.Optional[RequestOptions]
652
- Request-specific configuration.
653
-
654
- Returns
655
- -------
656
- AsyncHttpResponse[typing.List[ApiKeysListAllForOrgResponseItem]]
657
- Success
658
- """
659
- _response = await self._client_wrapper.httpx_client.request(
660
- f"organizations/{jsonable_encoder(organization_id)}/api-keys",
661
- method="GET",
662
- request_options=request_options,
663
- )
664
- try:
665
- if 200 <= _response.status_code < 300:
666
- _data = typing.cast(
667
- typing.List[ApiKeysListAllForOrgResponseItem],
668
- parse_obj_as(
669
- type_=typing.List[ApiKeysListAllForOrgResponseItem], # type: ignore
670
- object_=_response.json(),
671
- ),
672
- )
673
- return AsyncHttpResponse(response=_response, data=_data)
674
- if _response.status_code == 400:
675
- raise BadRequestError(
676
- headers=dict(_response.headers),
677
- body=typing.cast(
678
- typing.Optional[typing.Any],
679
- parse_obj_as(
680
- type_=typing.Optional[typing.Any], # type: ignore
681
- object_=_response.json(),
682
- ),
683
- ),
684
- )
685
- if _response.status_code == 404:
686
- raise NotFoundError(
687
- headers=dict(_response.headers),
688
- body=typing.cast(
689
- NotFoundErrorBody,
690
- parse_obj_as(
691
- type_=NotFoundErrorBody, # type: ignore
692
- object_=_response.json(),
693
- ),
694
- ),
695
- )
696
- if _response.status_code == 429:
697
- raise TooManyRequestsError(
698
- headers=dict(_response.headers),
699
- body=typing.cast(
700
- RateLimitError,
701
- parse_obj_as(
702
- type_=RateLimitError, # type: ignore
703
- object_=_response.json(),
704
- ),
705
- ),
706
- )
707
- if _response.status_code == 500:
708
- raise InternalServerError(
709
- headers=dict(_response.headers),
710
- body=typing.cast(
711
- typing.Optional[typing.Any],
712
- parse_obj_as(
713
- type_=typing.Optional[typing.Any], # type: ignore
714
- object_=_response.json(),
715
- ),
716
- ),
717
- )
718
- if _response.status_code == 503:
719
- raise ServiceUnavailableError(
720
- headers=dict(_response.headers),
721
- body=typing.cast(
722
- typing.Optional[typing.Any],
723
- parse_obj_as(
724
- type_=typing.Optional[typing.Any], # type: ignore
725
- object_=_response.json(),
726
- ),
727
- ),
728
- )
729
- _response_json = _response.json()
730
- except JSONDecodeError:
731
- raise ApiError(
732
- status_code=_response.status_code,
733
- headers=dict(_response.headers),
734
- body=_response.text,
735
- )
736
- raise ApiError(
737
- status_code=_response.status_code,
738
- headers=dict(_response.headers),
739
- body=_response_json,
740
- )
741
-
742
- async def api_keys_list(
743
- self,
744
- organization_id: str,
745
- project_id: str,
746
- environment_id: str,
747
- *,
748
- request_options: typing.Optional[RequestOptions] = None,
749
- ) -> AsyncHttpResponse[typing.List[ApiKeysListResponseItem]]:
750
- """
751
- Parameters
752
- ----------
753
- organization_id : str
754
-
755
- project_id : str
756
-
757
- environment_id : str
758
-
759
- request_options : typing.Optional[RequestOptions]
760
- Request-specific configuration.
761
-
762
- Returns
763
- -------
764
- AsyncHttpResponse[typing.List[ApiKeysListResponseItem]]
765
- Success
766
- """
767
- _response = await self._client_wrapper.httpx_client.request(
768
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys",
769
- method="GET",
770
- request_options=request_options,
771
- )
772
- try:
773
- if 200 <= _response.status_code < 300:
774
- _data = typing.cast(
775
- typing.List[ApiKeysListResponseItem],
776
- parse_obj_as(
777
- type_=typing.List[ApiKeysListResponseItem], # type: ignore
778
- object_=_response.json(),
779
- ),
780
- )
781
- return AsyncHttpResponse(response=_response, data=_data)
782
- if _response.status_code == 400:
783
- raise BadRequestError(
784
- headers=dict(_response.headers),
785
- body=typing.cast(
786
- typing.Optional[typing.Any],
787
- parse_obj_as(
788
- type_=typing.Optional[typing.Any], # type: ignore
789
- object_=_response.json(),
790
- ),
791
- ),
792
- )
793
- if _response.status_code == 403:
794
- raise ForbiddenError(
795
- headers=dict(_response.headers),
796
- body=typing.cast(
797
- PermissionDeniedError,
798
- parse_obj_as(
799
- type_=PermissionDeniedError, # type: ignore
800
- object_=_response.json(),
801
- ),
802
- ),
803
- )
804
- if _response.status_code == 404:
805
- raise NotFoundError(
806
- headers=dict(_response.headers),
807
- body=typing.cast(
808
- NotFoundErrorBody,
809
- parse_obj_as(
810
- type_=NotFoundErrorBody, # type: ignore
811
- object_=_response.json(),
812
- ),
813
- ),
814
- )
815
- if _response.status_code == 429:
816
- raise TooManyRequestsError(
817
- headers=dict(_response.headers),
818
- body=typing.cast(
819
- RateLimitError,
820
- parse_obj_as(
821
- type_=RateLimitError, # type: ignore
822
- object_=_response.json(),
823
- ),
824
- ),
825
- )
826
- if _response.status_code == 500:
827
- raise InternalServerError(
828
- headers=dict(_response.headers),
829
- body=typing.cast(
830
- typing.Optional[typing.Any],
831
- parse_obj_as(
832
- type_=typing.Optional[typing.Any], # type: ignore
833
- object_=_response.json(),
834
- ),
835
- ),
836
- )
837
- if _response.status_code == 503:
838
- raise ServiceUnavailableError(
839
- headers=dict(_response.headers),
840
- body=typing.cast(
841
- typing.Optional[typing.Any],
842
- parse_obj_as(
843
- type_=typing.Optional[typing.Any], # type: ignore
844
- object_=_response.json(),
845
- ),
846
- ),
847
- )
848
- _response_json = _response.json()
849
- except JSONDecodeError:
850
- raise ApiError(
851
- status_code=_response.status_code,
852
- headers=dict(_response.headers),
853
- body=_response.text,
854
- )
855
- raise ApiError(
856
- status_code=_response.status_code,
857
- headers=dict(_response.headers),
858
- body=_response_json,
859
- )
860
-
861
- async def api_keys_create(
862
- self,
863
- organization_id: str,
864
- project_id: str,
865
- environment_id: str,
866
- *,
867
- name: str,
868
- request_options: typing.Optional[RequestOptions] = None,
869
- ) -> AsyncHttpResponse[ApiKeysCreateResponse]:
870
- """
871
- Parameters
872
- ----------
873
- organization_id : str
874
-
875
- project_id : str
876
-
877
- environment_id : str
878
-
879
- name : str
880
- a string at most 100 character(s) long
881
-
882
- request_options : typing.Optional[RequestOptions]
883
- Request-specific configuration.
884
-
885
- Returns
886
- -------
887
- AsyncHttpResponse[ApiKeysCreateResponse]
888
- Success
889
- """
890
- _response = await self._client_wrapper.httpx_client.request(
891
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys",
892
- method="POST",
893
- json={
894
- "name": name,
895
- },
896
- headers={
897
- "content-type": "application/json",
898
- },
899
- request_options=request_options,
900
- omit=OMIT,
901
- )
902
- try:
903
- if 200 <= _response.status_code < 300:
904
- _data = typing.cast(
905
- ApiKeysCreateResponse,
906
- parse_obj_as(
907
- type_=ApiKeysCreateResponse, # type: ignore
908
- object_=_response.json(),
909
- ),
910
- )
911
- return AsyncHttpResponse(response=_response, data=_data)
912
- if _response.status_code == 400:
913
- raise BadRequestError(
914
- headers=dict(_response.headers),
915
- body=typing.cast(
916
- typing.Optional[typing.Any],
917
- parse_obj_as(
918
- type_=typing.Optional[typing.Any], # type: ignore
919
- object_=_response.json(),
920
- ),
921
- ),
922
- )
923
- if _response.status_code == 403:
924
- raise ForbiddenError(
925
- headers=dict(_response.headers),
926
- body=typing.cast(
927
- PermissionDeniedError,
928
- parse_obj_as(
929
- type_=PermissionDeniedError, # type: ignore
930
- object_=_response.json(),
931
- ),
932
- ),
933
- )
934
- if _response.status_code == 404:
935
- raise NotFoundError(
936
- headers=dict(_response.headers),
937
- body=typing.cast(
938
- NotFoundErrorBody,
939
- parse_obj_as(
940
- type_=NotFoundErrorBody, # type: ignore
941
- object_=_response.json(),
942
- ),
943
- ),
944
- )
945
- if _response.status_code == 409:
946
- raise ConflictError(
947
- headers=dict(_response.headers),
948
- body=typing.cast(
949
- typing.Optional[typing.Any],
950
- parse_obj_as(
951
- type_=typing.Optional[typing.Any], # type: ignore
952
- object_=_response.json(),
953
- ),
954
- ),
955
- )
956
- if _response.status_code == 429:
957
- raise TooManyRequestsError(
958
- headers=dict(_response.headers),
959
- body=typing.cast(
960
- RateLimitError,
961
- parse_obj_as(
962
- type_=RateLimitError, # type: ignore
963
- object_=_response.json(),
964
- ),
965
- ),
966
- )
967
- if _response.status_code == 500:
968
- raise InternalServerError(
969
- headers=dict(_response.headers),
970
- body=typing.cast(
971
- typing.Optional[typing.Any],
972
- parse_obj_as(
973
- type_=typing.Optional[typing.Any], # type: ignore
974
- object_=_response.json(),
975
- ),
976
- ),
977
- )
978
- if _response.status_code == 503:
979
- raise ServiceUnavailableError(
980
- headers=dict(_response.headers),
981
- body=typing.cast(
982
- typing.Optional[typing.Any],
983
- parse_obj_as(
984
- type_=typing.Optional[typing.Any], # type: ignore
985
- object_=_response.json(),
986
- ),
987
- ),
988
- )
989
- _response_json = _response.json()
990
- except JSONDecodeError:
991
- raise ApiError(
992
- status_code=_response.status_code,
993
- headers=dict(_response.headers),
994
- body=_response.text,
995
- )
996
- raise ApiError(
997
- status_code=_response.status_code,
998
- headers=dict(_response.headers),
999
- body=_response_json,
1000
- )
1001
-
1002
- async def api_keys_get(
1003
- self,
1004
- organization_id: str,
1005
- project_id: str,
1006
- environment_id: str,
1007
- api_key_id: str,
1008
- *,
1009
- request_options: typing.Optional[RequestOptions] = None,
1010
- ) -> AsyncHttpResponse[ApiKeysGetResponse]:
1011
- """
1012
- Parameters
1013
- ----------
1014
- organization_id : str
1015
-
1016
- project_id : str
1017
-
1018
- environment_id : str
1019
-
1020
- api_key_id : str
1021
-
1022
- request_options : typing.Optional[RequestOptions]
1023
- Request-specific configuration.
1024
-
1025
- Returns
1026
- -------
1027
- AsyncHttpResponse[ApiKeysGetResponse]
1028
- Success
1029
- """
1030
- _response = await self._client_wrapper.httpx_client.request(
1031
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys/{jsonable_encoder(api_key_id)}",
1032
- method="GET",
1033
- request_options=request_options,
1034
- )
1035
- try:
1036
- if 200 <= _response.status_code < 300:
1037
- _data = typing.cast(
1038
- ApiKeysGetResponse,
1039
- parse_obj_as(
1040
- type_=ApiKeysGetResponse, # type: ignore
1041
- object_=_response.json(),
1042
- ),
1043
- )
1044
- return AsyncHttpResponse(response=_response, data=_data)
1045
- if _response.status_code == 400:
1046
- raise BadRequestError(
1047
- headers=dict(_response.headers),
1048
- body=typing.cast(
1049
- typing.Optional[typing.Any],
1050
- parse_obj_as(
1051
- type_=typing.Optional[typing.Any], # type: ignore
1052
- object_=_response.json(),
1053
- ),
1054
- ),
1055
- )
1056
- if _response.status_code == 403:
1057
- raise ForbiddenError(
1058
- headers=dict(_response.headers),
1059
- body=typing.cast(
1060
- PermissionDeniedError,
1061
- parse_obj_as(
1062
- type_=PermissionDeniedError, # type: ignore
1063
- object_=_response.json(),
1064
- ),
1065
- ),
1066
- )
1067
- if _response.status_code == 404:
1068
- raise NotFoundError(
1069
- headers=dict(_response.headers),
1070
- body=typing.cast(
1071
- NotFoundErrorBody,
1072
- parse_obj_as(
1073
- type_=NotFoundErrorBody, # type: ignore
1074
- object_=_response.json(),
1075
- ),
1076
- ),
1077
- )
1078
- if _response.status_code == 429:
1079
- raise TooManyRequestsError(
1080
- headers=dict(_response.headers),
1081
- body=typing.cast(
1082
- RateLimitError,
1083
- parse_obj_as(
1084
- type_=RateLimitError, # type: ignore
1085
- object_=_response.json(),
1086
- ),
1087
- ),
1088
- )
1089
- if _response.status_code == 500:
1090
- raise InternalServerError(
1091
- headers=dict(_response.headers),
1092
- body=typing.cast(
1093
- typing.Optional[typing.Any],
1094
- parse_obj_as(
1095
- type_=typing.Optional[typing.Any], # type: ignore
1096
- object_=_response.json(),
1097
- ),
1098
- ),
1099
- )
1100
- if _response.status_code == 503:
1101
- raise ServiceUnavailableError(
1102
- headers=dict(_response.headers),
1103
- body=typing.cast(
1104
- typing.Optional[typing.Any],
1105
- parse_obj_as(
1106
- type_=typing.Optional[typing.Any], # type: ignore
1107
- object_=_response.json(),
1108
- ),
1109
- ),
1110
- )
1111
- _response_json = _response.json()
1112
- except JSONDecodeError:
1113
- raise ApiError(
1114
- status_code=_response.status_code,
1115
- headers=dict(_response.headers),
1116
- body=_response.text,
1117
- )
1118
- raise ApiError(
1119
- status_code=_response.status_code,
1120
- headers=dict(_response.headers),
1121
- body=_response_json,
1122
- )
1123
-
1124
- async def api_keys_delete(
1125
- self,
1126
- organization_id: str,
1127
- project_id: str,
1128
- environment_id: str,
1129
- api_key_id: str,
1130
- *,
1131
- request_options: typing.Optional[RequestOptions] = None,
1132
- ) -> AsyncHttpResponse[None]:
1133
- """
1134
- Parameters
1135
- ----------
1136
- organization_id : str
1137
-
1138
- project_id : str
1139
-
1140
- environment_id : str
1141
-
1142
- api_key_id : str
1143
-
1144
- request_options : typing.Optional[RequestOptions]
1145
- Request-specific configuration.
1146
-
1147
- Returns
1148
- -------
1149
- AsyncHttpResponse[None]
1150
- """
1151
- _response = await self._client_wrapper.httpx_client.request(
1152
- f"organizations/{jsonable_encoder(organization_id)}/projects/{jsonable_encoder(project_id)}/environments/{jsonable_encoder(environment_id)}/api-keys/{jsonable_encoder(api_key_id)}",
1153
- method="DELETE",
1154
- request_options=request_options,
1155
- )
1156
- try:
1157
- if 200 <= _response.status_code < 300:
1158
- return AsyncHttpResponse(response=_response, data=None)
1159
- if _response.status_code == 400:
1160
- raise BadRequestError(
1161
- headers=dict(_response.headers),
1162
- body=typing.cast(
1163
- typing.Optional[typing.Any],
1164
- parse_obj_as(
1165
- type_=typing.Optional[typing.Any], # type: ignore
1166
- object_=_response.json(),
1167
- ),
1168
- ),
1169
- )
1170
- if _response.status_code == 403:
1171
- raise ForbiddenError(
1172
- headers=dict(_response.headers),
1173
- body=typing.cast(
1174
- PermissionDeniedError,
1175
- parse_obj_as(
1176
- type_=PermissionDeniedError, # type: ignore
1177
- object_=_response.json(),
1178
- ),
1179
- ),
1180
- )
1181
- if _response.status_code == 404:
1182
- raise NotFoundError(
1183
- headers=dict(_response.headers),
1184
- body=typing.cast(
1185
- NotFoundErrorBody,
1186
- parse_obj_as(
1187
- type_=NotFoundErrorBody, # type: ignore
1188
- object_=_response.json(),
1189
- ),
1190
- ),
1191
- )
1192
- if _response.status_code == 429:
1193
- raise TooManyRequestsError(
1194
- headers=dict(_response.headers),
1195
- body=typing.cast(
1196
- RateLimitError,
1197
- parse_obj_as(
1198
- type_=RateLimitError, # type: ignore
1199
- object_=_response.json(),
1200
- ),
1201
- ),
1202
- )
1203
- if _response.status_code == 500:
1204
- raise InternalServerError(
1205
- headers=dict(_response.headers),
1206
- body=typing.cast(
1207
- typing.Optional[typing.Any],
1208
- parse_obj_as(
1209
- type_=typing.Optional[typing.Any], # type: ignore
1210
- object_=_response.json(),
1211
- ),
1212
- ),
1213
- )
1214
- if _response.status_code == 503:
1215
- raise ServiceUnavailableError(
1216
- headers=dict(_response.headers),
1217
- body=typing.cast(
1218
- typing.Optional[typing.Any],
1219
- parse_obj_as(
1220
- type_=typing.Optional[typing.Any], # type: ignore
1221
- object_=_response.json(),
1222
- ),
1223
- ),
1224
- )
1225
- _response_json = _response.json()
1226
- except JSONDecodeError:
1227
- raise ApiError(
1228
- status_code=_response.status_code,
1229
- headers=dict(_response.headers),
1230
- body=_response.text,
1231
- )
1232
- raise ApiError(
1233
- status_code=_response.status_code,
1234
- headers=dict(_response.headers),
1235
- body=_response_json,
1236
- )