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