mirascope 2.0.0a6__py3-none-any.whl → 2.0.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. mirascope/_utils.py +34 -0
  2. mirascope/api/_generated/__init__.py +186 -5
  3. mirascope/api/_generated/annotations/client.py +38 -6
  4. mirascope/api/_generated/annotations/raw_client.py +366 -47
  5. mirascope/api/_generated/annotations/types/annotations_create_response.py +19 -6
  6. mirascope/api/_generated/annotations/types/annotations_get_response.py +19 -6
  7. mirascope/api/_generated/annotations/types/annotations_list_response_annotations_item.py +22 -7
  8. mirascope/api/_generated/annotations/types/annotations_update_response.py +19 -6
  9. mirascope/api/_generated/api_keys/__init__.py +12 -2
  10. mirascope/api/_generated/api_keys/client.py +107 -6
  11. mirascope/api/_generated/api_keys/raw_client.py +486 -38
  12. mirascope/api/_generated/api_keys/types/__init__.py +7 -1
  13. mirascope/api/_generated/api_keys/types/api_keys_list_all_for_org_response_item.py +40 -0
  14. mirascope/api/_generated/client.py +36 -0
  15. mirascope/api/_generated/docs/raw_client.py +71 -9
  16. mirascope/api/_generated/environment.py +3 -3
  17. mirascope/api/_generated/environments/__init__.py +6 -0
  18. mirascope/api/_generated/environments/client.py +158 -9
  19. mirascope/api/_generated/environments/raw_client.py +620 -52
  20. mirascope/api/_generated/environments/types/__init__.py +10 -0
  21. mirascope/api/_generated/environments/types/environments_get_analytics_response.py +60 -0
  22. mirascope/api/_generated/environments/types/environments_get_analytics_response_top_functions_item.py +24 -0
  23. mirascope/api/_generated/{organizations/types/organizations_credits_response.py → environments/types/environments_get_analytics_response_top_models_item.py} +6 -3
  24. mirascope/api/_generated/errors/__init__.py +6 -0
  25. mirascope/api/_generated/errors/bad_request_error.py +5 -2
  26. mirascope/api/_generated/errors/conflict_error.py +5 -2
  27. mirascope/api/_generated/errors/payment_required_error.py +15 -0
  28. mirascope/api/_generated/errors/service_unavailable_error.py +14 -0
  29. mirascope/api/_generated/errors/too_many_requests_error.py +15 -0
  30. mirascope/api/_generated/functions/__init__.py +10 -0
  31. mirascope/api/_generated/functions/client.py +222 -8
  32. mirascope/api/_generated/functions/raw_client.py +975 -134
  33. mirascope/api/_generated/functions/types/__init__.py +28 -4
  34. mirascope/api/_generated/functions/types/functions_get_by_env_response.py +53 -0
  35. mirascope/api/_generated/functions/types/functions_get_by_env_response_dependencies_value.py +22 -0
  36. mirascope/api/_generated/functions/types/functions_list_by_env_response.py +25 -0
  37. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item.py +56 -0
  38. mirascope/api/_generated/functions/types/functions_list_by_env_response_functions_item_dependencies_value.py +22 -0
  39. mirascope/api/_generated/health/raw_client.py +74 -10
  40. mirascope/api/_generated/organization_invitations/__init__.py +33 -0
  41. mirascope/api/_generated/organization_invitations/client.py +546 -0
  42. mirascope/api/_generated/organization_invitations/raw_client.py +1519 -0
  43. mirascope/api/_generated/organization_invitations/types/__init__.py +53 -0
  44. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response.py +34 -0
  45. mirascope/api/_generated/organization_invitations/types/organization_invitations_accept_response_role.py +7 -0
  46. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_request_role.py +7 -0
  47. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response.py +48 -0
  48. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_role.py +7 -0
  49. mirascope/api/_generated/organization_invitations/types/organization_invitations_create_response_status.py +7 -0
  50. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response.py +48 -0
  51. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_role.py +7 -0
  52. mirascope/api/_generated/organization_invitations/types/organization_invitations_get_response_status.py +7 -0
  53. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item.py +48 -0
  54. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_role.py +7 -0
  55. mirascope/api/_generated/organization_invitations/types/organization_invitations_list_response_item_status.py +7 -0
  56. mirascope/api/_generated/organization_memberships/__init__.py +19 -0
  57. mirascope/api/_generated/organization_memberships/client.py +302 -0
  58. mirascope/api/_generated/organization_memberships/raw_client.py +736 -0
  59. mirascope/api/_generated/organization_memberships/types/__init__.py +27 -0
  60. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item.py +33 -0
  61. mirascope/api/_generated/organization_memberships/types/organization_memberships_list_response_item_role.py +7 -0
  62. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_request_role.py +7 -0
  63. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response.py +31 -0
  64. mirascope/api/_generated/organization_memberships/types/organization_memberships_update_response_role.py +7 -0
  65. mirascope/api/_generated/organizations/__init__.py +26 -2
  66. mirascope/api/_generated/organizations/client.py +442 -20
  67. mirascope/api/_generated/organizations/raw_client.py +1763 -164
  68. mirascope/api/_generated/organizations/types/__init__.py +48 -2
  69. mirascope/api/_generated/organizations/types/organizations_create_payment_intent_response.py +24 -0
  70. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_request_target_plan.py +7 -0
  71. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response.py +47 -0
  72. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item.py +33 -0
  73. mirascope/api/_generated/organizations/types/organizations_preview_subscription_change_response_validation_errors_item_resource.py +7 -0
  74. mirascope/api/_generated/organizations/types/organizations_router_balance_response.py +24 -0
  75. mirascope/api/_generated/organizations/types/organizations_subscription_response.py +53 -0
  76. mirascope/api/_generated/organizations/types/organizations_subscription_response_current_plan.py +7 -0
  77. mirascope/api/_generated/organizations/types/organizations_subscription_response_payment_method.py +26 -0
  78. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change.py +34 -0
  79. mirascope/api/_generated/organizations/types/organizations_subscription_response_scheduled_change_target_plan.py +7 -0
  80. mirascope/api/_generated/organizations/types/organizations_update_subscription_request_target_plan.py +7 -0
  81. mirascope/api/_generated/organizations/types/organizations_update_subscription_response.py +35 -0
  82. mirascope/api/_generated/project_memberships/__init__.py +25 -0
  83. mirascope/api/_generated/project_memberships/client.py +437 -0
  84. mirascope/api/_generated/project_memberships/raw_client.py +1039 -0
  85. mirascope/api/_generated/project_memberships/types/__init__.py +29 -0
  86. mirascope/api/_generated/project_memberships/types/project_memberships_create_request_role.py +7 -0
  87. mirascope/api/_generated/project_memberships/types/project_memberships_create_response.py +35 -0
  88. mirascope/api/_generated/project_memberships/types/project_memberships_create_response_role.py +7 -0
  89. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item.py +33 -0
  90. mirascope/api/_generated/project_memberships/types/project_memberships_list_response_item_role.py +7 -0
  91. mirascope/api/_generated/project_memberships/types/project_memberships_update_request_role.py +7 -0
  92. mirascope/api/_generated/project_memberships/types/project_memberships_update_response.py +35 -0
  93. mirascope/api/_generated/project_memberships/types/project_memberships_update_response_role.py +7 -0
  94. mirascope/api/_generated/projects/raw_client.py +415 -58
  95. mirascope/api/_generated/reference.md +2767 -397
  96. mirascope/api/_generated/tags/__init__.py +19 -0
  97. mirascope/api/_generated/tags/client.py +504 -0
  98. mirascope/api/_generated/tags/raw_client.py +1288 -0
  99. mirascope/api/_generated/tags/types/__init__.py +17 -0
  100. mirascope/api/_generated/tags/types/tags_create_response.py +41 -0
  101. mirascope/api/_generated/tags/types/tags_get_response.py +41 -0
  102. mirascope/api/_generated/tags/types/tags_list_response.py +23 -0
  103. mirascope/api/_generated/tags/types/tags_list_response_tags_item.py +41 -0
  104. mirascope/api/_generated/tags/types/tags_update_response.py +41 -0
  105. mirascope/api/_generated/token_cost/__init__.py +7 -0
  106. mirascope/api/_generated/token_cost/client.py +160 -0
  107. mirascope/api/_generated/token_cost/raw_client.py +264 -0
  108. mirascope/api/_generated/token_cost/types/__init__.py +8 -0
  109. mirascope/api/_generated/token_cost/types/token_cost_calculate_request_usage.py +54 -0
  110. mirascope/api/_generated/token_cost/types/token_cost_calculate_response.py +52 -0
  111. mirascope/api/_generated/traces/__init__.py +20 -0
  112. mirascope/api/_generated/traces/client.py +543 -0
  113. mirascope/api/_generated/traces/raw_client.py +1366 -96
  114. mirascope/api/_generated/traces/types/__init__.py +28 -0
  115. mirascope/api/_generated/traces/types/traces_get_analytics_summary_response.py +6 -0
  116. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response.py +33 -0
  117. mirascope/api/_generated/traces/types/traces_get_trace_detail_by_env_response_spans_item.py +88 -0
  118. mirascope/api/_generated/traces/types/traces_get_trace_detail_response_spans_item.py +0 -2
  119. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response.py +25 -0
  120. mirascope/api/_generated/traces/types/traces_list_by_function_hash_response_traces_item.py +44 -0
  121. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item.py +26 -0
  122. mirascope/api/_generated/traces/types/traces_search_by_env_request_attribute_filters_item_operator.py +7 -0
  123. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_by.py +7 -0
  124. mirascope/api/_generated/traces/types/traces_search_by_env_request_sort_order.py +7 -0
  125. mirascope/api/_generated/traces/types/traces_search_by_env_response.py +26 -0
  126. mirascope/api/_generated/traces/types/traces_search_by_env_response_spans_item.py +50 -0
  127. mirascope/api/_generated/traces/types/traces_search_response_spans_item.py +10 -1
  128. mirascope/api/_generated/types/__init__.py +32 -2
  129. mirascope/api/_generated/types/bad_request_error_body.py +50 -0
  130. mirascope/api/_generated/types/date.py +3 -0
  131. mirascope/api/_generated/types/immutable_resource_error.py +22 -0
  132. mirascope/api/_generated/types/internal_server_error_body.py +3 -3
  133. mirascope/api/_generated/types/plan_limit_exceeded_error.py +32 -0
  134. mirascope/api/_generated/types/plan_limit_exceeded_error_tag.py +7 -0
  135. mirascope/api/_generated/types/pricing_unavailable_error.py +23 -0
  136. mirascope/api/_generated/types/rate_limit_error.py +31 -0
  137. mirascope/api/_generated/types/rate_limit_error_tag.py +5 -0
  138. mirascope/api/_generated/types/service_unavailable_error_body.py +24 -0
  139. mirascope/api/_generated/types/service_unavailable_error_tag.py +7 -0
  140. mirascope/api/_generated/types/subscription_past_due_error.py +31 -0
  141. mirascope/api/_generated/types/subscription_past_due_error_tag.py +7 -0
  142. mirascope/api/settings.py +19 -1
  143. mirascope/llm/__init__.py +53 -10
  144. mirascope/llm/calls/__init__.py +2 -1
  145. mirascope/llm/calls/calls.py +29 -20
  146. mirascope/llm/calls/decorator.py +21 -7
  147. mirascope/llm/content/tool_output.py +22 -5
  148. mirascope/llm/exceptions.py +284 -71
  149. mirascope/llm/formatting/__init__.py +17 -0
  150. mirascope/llm/formatting/format.py +112 -35
  151. mirascope/llm/formatting/output_parser.py +178 -0
  152. mirascope/llm/formatting/partial.py +80 -7
  153. mirascope/llm/formatting/primitives.py +192 -0
  154. mirascope/llm/formatting/types.py +20 -8
  155. mirascope/llm/messages/__init__.py +3 -0
  156. mirascope/llm/messages/_utils.py +34 -0
  157. mirascope/llm/models/__init__.py +5 -0
  158. mirascope/llm/models/models.py +137 -69
  159. mirascope/llm/{providers/base → models}/params.py +7 -57
  160. mirascope/llm/models/thinking_config.py +61 -0
  161. mirascope/llm/prompts/_utils.py +0 -32
  162. mirascope/llm/prompts/decorator.py +16 -5
  163. mirascope/llm/prompts/prompts.py +160 -92
  164. mirascope/llm/providers/__init__.py +1 -4
  165. mirascope/llm/providers/anthropic/_utils/__init__.py +2 -0
  166. mirascope/llm/providers/anthropic/_utils/beta_decode.py +18 -9
  167. mirascope/llm/providers/anthropic/_utils/beta_encode.py +62 -13
  168. mirascope/llm/providers/anthropic/_utils/decode.py +18 -9
  169. mirascope/llm/providers/anthropic/_utils/encode.py +26 -7
  170. mirascope/llm/providers/anthropic/_utils/errors.py +2 -2
  171. mirascope/llm/providers/anthropic/beta_provider.py +64 -18
  172. mirascope/llm/providers/anthropic/provider.py +91 -33
  173. mirascope/llm/providers/base/__init__.py +0 -4
  174. mirascope/llm/providers/base/_utils.py +55 -6
  175. mirascope/llm/providers/base/base_provider.py +116 -37
  176. mirascope/llm/providers/google/_utils/__init__.py +2 -0
  177. mirascope/llm/providers/google/_utils/decode.py +20 -7
  178. mirascope/llm/providers/google/_utils/encode.py +26 -7
  179. mirascope/llm/providers/google/_utils/errors.py +3 -2
  180. mirascope/llm/providers/google/provider.py +64 -18
  181. mirascope/llm/providers/mirascope/_utils.py +13 -17
  182. mirascope/llm/providers/mirascope/provider.py +49 -18
  183. mirascope/llm/providers/mlx/_utils.py +7 -2
  184. mirascope/llm/providers/mlx/encoding/base.py +5 -2
  185. mirascope/llm/providers/mlx/encoding/transformers.py +5 -2
  186. mirascope/llm/providers/mlx/mlx.py +23 -6
  187. mirascope/llm/providers/mlx/provider.py +42 -13
  188. mirascope/llm/providers/openai/_utils/errors.py +2 -2
  189. mirascope/llm/providers/openai/completions/_utils/encode.py +20 -16
  190. mirascope/llm/providers/openai/completions/base_provider.py +40 -11
  191. mirascope/llm/providers/openai/provider.py +40 -10
  192. mirascope/llm/providers/openai/responses/_utils/__init__.py +2 -0
  193. mirascope/llm/providers/openai/responses/_utils/decode.py +19 -6
  194. mirascope/llm/providers/openai/responses/_utils/encode.py +22 -10
  195. mirascope/llm/providers/openai/responses/provider.py +56 -18
  196. mirascope/llm/providers/provider_registry.py +93 -19
  197. mirascope/llm/responses/__init__.py +6 -1
  198. mirascope/llm/responses/_utils.py +102 -12
  199. mirascope/llm/responses/base_response.py +5 -2
  200. mirascope/llm/responses/base_stream_response.py +115 -25
  201. mirascope/llm/responses/response.py +2 -1
  202. mirascope/llm/responses/root_response.py +89 -17
  203. mirascope/llm/responses/stream_response.py +6 -9
  204. mirascope/llm/tools/decorator.py +9 -4
  205. mirascope/llm/tools/tool_schema.py +17 -6
  206. mirascope/llm/tools/toolkit.py +35 -27
  207. mirascope/llm/tools/tools.py +45 -20
  208. mirascope/ops/__init__.py +4 -0
  209. mirascope/ops/_internal/closure.py +4 -1
  210. mirascope/ops/_internal/configuration.py +82 -31
  211. mirascope/ops/_internal/exporters/exporters.py +55 -35
  212. mirascope/ops/_internal/exporters/utils.py +37 -0
  213. mirascope/ops/_internal/instrumentation/llm/common.py +530 -0
  214. mirascope/ops/_internal/instrumentation/llm/cost.py +190 -0
  215. mirascope/ops/_internal/instrumentation/llm/encode.py +1 -1
  216. mirascope/ops/_internal/instrumentation/llm/llm.py +116 -1242
  217. mirascope/ops/_internal/instrumentation/llm/model.py +1798 -0
  218. mirascope/ops/_internal/instrumentation/llm/response.py +521 -0
  219. mirascope/ops/_internal/instrumentation/llm/serialize.py +300 -0
  220. mirascope/ops/_internal/protocols.py +83 -1
  221. mirascope/ops/_internal/traced_calls.py +18 -0
  222. mirascope/ops/_internal/traced_functions.py +125 -10
  223. mirascope/ops/_internal/tracing.py +78 -1
  224. mirascope/ops/_internal/utils.py +60 -4
  225. mirascope/ops/_internal/versioned_functions.py +1 -1
  226. {mirascope-2.0.0a6.dist-info → mirascope-2.0.2.dist-info}/METADATA +12 -11
  227. mirascope-2.0.2.dist-info/RECORD +424 -0
  228. {mirascope-2.0.0a6.dist-info → mirascope-2.0.2.dist-info}/licenses/LICENSE +1 -1
  229. mirascope-2.0.0a6.dist-info/RECORD +0 -316
  230. {mirascope-2.0.0a6.dist-info → mirascope-2.0.2.dist-info}/WHEEL +0 -0
@@ -0,0 +1,53 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .organization_invitations_accept_response import (
6
+ OrganizationInvitationsAcceptResponse,
7
+ )
8
+ from .organization_invitations_accept_response_role import (
9
+ OrganizationInvitationsAcceptResponseRole,
10
+ )
11
+ from .organization_invitations_create_request_role import (
12
+ OrganizationInvitationsCreateRequestRole,
13
+ )
14
+ from .organization_invitations_create_response import (
15
+ OrganizationInvitationsCreateResponse,
16
+ )
17
+ from .organization_invitations_create_response_role import (
18
+ OrganizationInvitationsCreateResponseRole,
19
+ )
20
+ from .organization_invitations_create_response_status import (
21
+ OrganizationInvitationsCreateResponseStatus,
22
+ )
23
+ from .organization_invitations_get_response import OrganizationInvitationsGetResponse
24
+ from .organization_invitations_get_response_role import (
25
+ OrganizationInvitationsGetResponseRole,
26
+ )
27
+ from .organization_invitations_get_response_status import (
28
+ OrganizationInvitationsGetResponseStatus,
29
+ )
30
+ from .organization_invitations_list_response_item import (
31
+ OrganizationInvitationsListResponseItem,
32
+ )
33
+ from .organization_invitations_list_response_item_role import (
34
+ OrganizationInvitationsListResponseItemRole,
35
+ )
36
+ from .organization_invitations_list_response_item_status import (
37
+ OrganizationInvitationsListResponseItemStatus,
38
+ )
39
+
40
+ __all__ = [
41
+ "OrganizationInvitationsAcceptResponse",
42
+ "OrganizationInvitationsAcceptResponseRole",
43
+ "OrganizationInvitationsCreateRequestRole",
44
+ "OrganizationInvitationsCreateResponse",
45
+ "OrganizationInvitationsCreateResponseRole",
46
+ "OrganizationInvitationsCreateResponseStatus",
47
+ "OrganizationInvitationsGetResponse",
48
+ "OrganizationInvitationsGetResponseRole",
49
+ "OrganizationInvitationsGetResponseStatus",
50
+ "OrganizationInvitationsListResponseItem",
51
+ "OrganizationInvitationsListResponseItemRole",
52
+ "OrganizationInvitationsListResponseItemStatus",
53
+ ]
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from ...types.date import Date
10
+ from .organization_invitations_accept_response_role import (
11
+ OrganizationInvitationsAcceptResponseRole,
12
+ )
13
+
14
+
15
+ class OrganizationInvitationsAcceptResponse(UniversalBaseModel):
16
+ member_id: typing_extensions.Annotated[str, FieldMetadata(alias="memberId")]
17
+ organization_id: typing_extensions.Annotated[
18
+ str, FieldMetadata(alias="organizationId")
19
+ ]
20
+ role: OrganizationInvitationsAcceptResponseRole
21
+ created_at: typing_extensions.Annotated[
22
+ typing.Optional[Date], FieldMetadata(alias="createdAt")
23
+ ] = None
24
+
25
+ if IS_PYDANTIC_V2:
26
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
27
+ extra="allow", frozen=True
28
+ ) # type: ignore # Pydantic v2
29
+ else:
30
+
31
+ class Config:
32
+ frozen = True
33
+ smart_union = True
34
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsAcceptResponseRole = typing.Union[
6
+ typing.Literal["OWNER", "ADMIN", "MEMBER"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsCreateRequestRole = typing.Union[
6
+ typing.Literal["ADMIN", "MEMBER"], typing.Any
7
+ ]
@@ -0,0 +1,48 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from ...types.date import Date
10
+ from .organization_invitations_create_response_role import (
11
+ OrganizationInvitationsCreateResponseRole,
12
+ )
13
+ from .organization_invitations_create_response_status import (
14
+ OrganizationInvitationsCreateResponseStatus,
15
+ )
16
+
17
+
18
+ class OrganizationInvitationsCreateResponse(UniversalBaseModel):
19
+ id: str
20
+ organization_id: typing_extensions.Annotated[
21
+ str, FieldMetadata(alias="organizationId")
22
+ ]
23
+ sender_id: typing_extensions.Annotated[str, FieldMetadata(alias="senderId")]
24
+ recipient_email: typing_extensions.Annotated[
25
+ str, FieldMetadata(alias="recipientEmail")
26
+ ]
27
+ role: OrganizationInvitationsCreateResponseRole
28
+ status: OrganizationInvitationsCreateResponseStatus
29
+ expires_at: typing_extensions.Annotated[Date, FieldMetadata(alias="expiresAt")]
30
+ created_at: typing_extensions.Annotated[Date, FieldMetadata(alias="createdAt")]
31
+ updated_at: typing_extensions.Annotated[Date, FieldMetadata(alias="updatedAt")]
32
+ accepted_at: typing_extensions.Annotated[
33
+ typing.Optional[Date], FieldMetadata(alias="acceptedAt")
34
+ ] = None
35
+ revoked_at: typing_extensions.Annotated[
36
+ typing.Optional[Date], FieldMetadata(alias="revokedAt")
37
+ ] = None
38
+
39
+ if IS_PYDANTIC_V2:
40
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
41
+ extra="allow", frozen=True
42
+ ) # type: ignore # Pydantic v2
43
+ else:
44
+
45
+ class Config:
46
+ frozen = True
47
+ smart_union = True
48
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsCreateResponseRole = typing.Union[
6
+ typing.Literal["ADMIN", "MEMBER"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsCreateResponseStatus = typing.Union[
6
+ typing.Literal["pending", "accepted", "revoked"], typing.Any
7
+ ]
@@ -0,0 +1,48 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from ...types.date import Date
10
+ from .organization_invitations_get_response_role import (
11
+ OrganizationInvitationsGetResponseRole,
12
+ )
13
+ from .organization_invitations_get_response_status import (
14
+ OrganizationInvitationsGetResponseStatus,
15
+ )
16
+
17
+
18
+ class OrganizationInvitationsGetResponse(UniversalBaseModel):
19
+ id: str
20
+ organization_id: typing_extensions.Annotated[
21
+ str, FieldMetadata(alias="organizationId")
22
+ ]
23
+ sender_id: typing_extensions.Annotated[str, FieldMetadata(alias="senderId")]
24
+ recipient_email: typing_extensions.Annotated[
25
+ str, FieldMetadata(alias="recipientEmail")
26
+ ]
27
+ role: OrganizationInvitationsGetResponseRole
28
+ status: OrganizationInvitationsGetResponseStatus
29
+ expires_at: typing_extensions.Annotated[Date, FieldMetadata(alias="expiresAt")]
30
+ created_at: typing_extensions.Annotated[Date, FieldMetadata(alias="createdAt")]
31
+ updated_at: typing_extensions.Annotated[Date, FieldMetadata(alias="updatedAt")]
32
+ accepted_at: typing_extensions.Annotated[
33
+ typing.Optional[Date], FieldMetadata(alias="acceptedAt")
34
+ ] = None
35
+ revoked_at: typing_extensions.Annotated[
36
+ typing.Optional[Date], FieldMetadata(alias="revokedAt")
37
+ ] = None
38
+
39
+ if IS_PYDANTIC_V2:
40
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
41
+ extra="allow", frozen=True
42
+ ) # type: ignore # Pydantic v2
43
+ else:
44
+
45
+ class Config:
46
+ frozen = True
47
+ smart_union = True
48
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsGetResponseRole = typing.Union[
6
+ typing.Literal["ADMIN", "MEMBER"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsGetResponseStatus = typing.Union[
6
+ typing.Literal["pending", "accepted", "revoked"], typing.Any
7
+ ]
@@ -0,0 +1,48 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ import typing_extensions
7
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
+ from ...core.serialization import FieldMetadata
9
+ from ...types.date import Date
10
+ from .organization_invitations_list_response_item_role import (
11
+ OrganizationInvitationsListResponseItemRole,
12
+ )
13
+ from .organization_invitations_list_response_item_status import (
14
+ OrganizationInvitationsListResponseItemStatus,
15
+ )
16
+
17
+
18
+ class OrganizationInvitationsListResponseItem(UniversalBaseModel):
19
+ id: str
20
+ organization_id: typing_extensions.Annotated[
21
+ str, FieldMetadata(alias="organizationId")
22
+ ]
23
+ sender_id: typing_extensions.Annotated[str, FieldMetadata(alias="senderId")]
24
+ recipient_email: typing_extensions.Annotated[
25
+ str, FieldMetadata(alias="recipientEmail")
26
+ ]
27
+ role: OrganizationInvitationsListResponseItemRole
28
+ status: OrganizationInvitationsListResponseItemStatus
29
+ expires_at: typing_extensions.Annotated[Date, FieldMetadata(alias="expiresAt")]
30
+ created_at: typing_extensions.Annotated[Date, FieldMetadata(alias="createdAt")]
31
+ updated_at: typing_extensions.Annotated[Date, FieldMetadata(alias="updatedAt")]
32
+ accepted_at: typing_extensions.Annotated[
33
+ typing.Optional[Date], FieldMetadata(alias="acceptedAt")
34
+ ] = None
35
+ revoked_at: typing_extensions.Annotated[
36
+ typing.Optional[Date], FieldMetadata(alias="revokedAt")
37
+ ] = None
38
+
39
+ if IS_PYDANTIC_V2:
40
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
41
+ extra="allow", frozen=True
42
+ ) # type: ignore # Pydantic v2
43
+ else:
44
+
45
+ class Config:
46
+ frozen = True
47
+ smart_union = True
48
+ extra = pydantic.Extra.allow
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsListResponseItemRole = typing.Union[
6
+ typing.Literal["ADMIN", "MEMBER"], typing.Any
7
+ ]
@@ -0,0 +1,7 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ OrganizationInvitationsListResponseItemStatus = typing.Union[
6
+ typing.Literal["pending", "accepted", "revoked"], typing.Any
7
+ ]
@@ -0,0 +1,19 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .types import (
6
+ OrganizationMembershipsListResponseItem,
7
+ OrganizationMembershipsListResponseItemRole,
8
+ OrganizationMembershipsUpdateRequestRole,
9
+ OrganizationMembershipsUpdateResponse,
10
+ OrganizationMembershipsUpdateResponseRole,
11
+ )
12
+
13
+ __all__ = [
14
+ "OrganizationMembershipsListResponseItem",
15
+ "OrganizationMembershipsListResponseItemRole",
16
+ "OrganizationMembershipsUpdateRequestRole",
17
+ "OrganizationMembershipsUpdateResponse",
18
+ "OrganizationMembershipsUpdateResponseRole",
19
+ ]
@@ -0,0 +1,302 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from ..core.request_options import RequestOptions
7
+ from .raw_client import (
8
+ AsyncRawOrganizationMembershipsClient,
9
+ RawOrganizationMembershipsClient,
10
+ )
11
+ from .types.organization_memberships_list_response_item import (
12
+ OrganizationMembershipsListResponseItem,
13
+ )
14
+ from .types.organization_memberships_update_request_role import (
15
+ OrganizationMembershipsUpdateRequestRole,
16
+ )
17
+ from .types.organization_memberships_update_response import (
18
+ OrganizationMembershipsUpdateResponse,
19
+ )
20
+
21
+ # this is used as the default value for optional parameters
22
+ OMIT = typing.cast(typing.Any, ...)
23
+
24
+
25
+ class OrganizationMembershipsClient:
26
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
27
+ self._raw_client = RawOrganizationMembershipsClient(
28
+ client_wrapper=client_wrapper
29
+ )
30
+
31
+ @property
32
+ def with_raw_response(self) -> RawOrganizationMembershipsClient:
33
+ """
34
+ Retrieves a raw implementation of this client that returns raw responses.
35
+
36
+ Returns
37
+ -------
38
+ RawOrganizationMembershipsClient
39
+ """
40
+ return self._raw_client
41
+
42
+ def list(
43
+ self,
44
+ organization_id: str,
45
+ *,
46
+ request_options: typing.Optional[RequestOptions] = None,
47
+ ) -> typing.List[OrganizationMembershipsListResponseItem]:
48
+ """
49
+ Parameters
50
+ ----------
51
+ organization_id : str
52
+
53
+ request_options : typing.Optional[RequestOptions]
54
+ Request-specific configuration.
55
+
56
+ Returns
57
+ -------
58
+ typing.List[OrganizationMembershipsListResponseItem]
59
+ Success
60
+
61
+ Examples
62
+ --------
63
+ from mirascope.api._generated import Mirascope
64
+
65
+ client = Mirascope()
66
+ client.organization_memberships.list(
67
+ organization_id="organizationId",
68
+ )
69
+ """
70
+ _response = self._raw_client.list(
71
+ organization_id, request_options=request_options
72
+ )
73
+ return _response.data
74
+
75
+ def delete(
76
+ self,
77
+ organization_id: str,
78
+ member_id: str,
79
+ *,
80
+ request_options: typing.Optional[RequestOptions] = None,
81
+ ) -> None:
82
+ """
83
+ Parameters
84
+ ----------
85
+ organization_id : str
86
+
87
+ member_id : str
88
+
89
+ request_options : typing.Optional[RequestOptions]
90
+ Request-specific configuration.
91
+
92
+ Returns
93
+ -------
94
+ None
95
+
96
+ Examples
97
+ --------
98
+ from mirascope.api._generated import Mirascope
99
+
100
+ client = Mirascope()
101
+ client.organization_memberships.delete(
102
+ organization_id="organizationId",
103
+ member_id="memberId",
104
+ )
105
+ """
106
+ _response = self._raw_client.delete(
107
+ organization_id, member_id, request_options=request_options
108
+ )
109
+ return _response.data
110
+
111
+ def update(
112
+ self,
113
+ organization_id: str,
114
+ member_id: str,
115
+ *,
116
+ role: OrganizationMembershipsUpdateRequestRole,
117
+ request_options: typing.Optional[RequestOptions] = None,
118
+ ) -> OrganizationMembershipsUpdateResponse:
119
+ """
120
+ Parameters
121
+ ----------
122
+ organization_id : str
123
+
124
+ member_id : str
125
+
126
+ role : OrganizationMembershipsUpdateRequestRole
127
+
128
+ request_options : typing.Optional[RequestOptions]
129
+ Request-specific configuration.
130
+
131
+ Returns
132
+ -------
133
+ OrganizationMembershipsUpdateResponse
134
+ Success
135
+
136
+ Examples
137
+ --------
138
+ from mirascope.api._generated import Mirascope
139
+
140
+ client = Mirascope()
141
+ client.organization_memberships.update(
142
+ organization_id="organizationId",
143
+ member_id="memberId",
144
+ role="ADMIN",
145
+ )
146
+ """
147
+ _response = self._raw_client.update(
148
+ organization_id, member_id, role=role, request_options=request_options
149
+ )
150
+ return _response.data
151
+
152
+
153
+ class AsyncOrganizationMembershipsClient:
154
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
155
+ self._raw_client = AsyncRawOrganizationMembershipsClient(
156
+ client_wrapper=client_wrapper
157
+ )
158
+
159
+ @property
160
+ def with_raw_response(self) -> AsyncRawOrganizationMembershipsClient:
161
+ """
162
+ Retrieves a raw implementation of this client that returns raw responses.
163
+
164
+ Returns
165
+ -------
166
+ AsyncRawOrganizationMembershipsClient
167
+ """
168
+ return self._raw_client
169
+
170
+ async def list(
171
+ self,
172
+ organization_id: str,
173
+ *,
174
+ request_options: typing.Optional[RequestOptions] = None,
175
+ ) -> typing.List[OrganizationMembershipsListResponseItem]:
176
+ """
177
+ Parameters
178
+ ----------
179
+ organization_id : str
180
+
181
+ request_options : typing.Optional[RequestOptions]
182
+ Request-specific configuration.
183
+
184
+ Returns
185
+ -------
186
+ typing.List[OrganizationMembershipsListResponseItem]
187
+ Success
188
+
189
+ Examples
190
+ --------
191
+ import asyncio
192
+
193
+ from mirascope.api._generated import AsyncMirascope
194
+
195
+ client = AsyncMirascope()
196
+
197
+
198
+ async def main() -> None:
199
+ await client.organization_memberships.list(
200
+ organization_id="organizationId",
201
+ )
202
+
203
+
204
+ asyncio.run(main())
205
+ """
206
+ _response = await self._raw_client.list(
207
+ organization_id, request_options=request_options
208
+ )
209
+ return _response.data
210
+
211
+ async def delete(
212
+ self,
213
+ organization_id: str,
214
+ member_id: str,
215
+ *,
216
+ request_options: typing.Optional[RequestOptions] = None,
217
+ ) -> None:
218
+ """
219
+ Parameters
220
+ ----------
221
+ organization_id : str
222
+
223
+ member_id : str
224
+
225
+ request_options : typing.Optional[RequestOptions]
226
+ Request-specific configuration.
227
+
228
+ Returns
229
+ -------
230
+ None
231
+
232
+ Examples
233
+ --------
234
+ import asyncio
235
+
236
+ from mirascope.api._generated import AsyncMirascope
237
+
238
+ client = AsyncMirascope()
239
+
240
+
241
+ async def main() -> None:
242
+ await client.organization_memberships.delete(
243
+ organization_id="organizationId",
244
+ member_id="memberId",
245
+ )
246
+
247
+
248
+ asyncio.run(main())
249
+ """
250
+ _response = await self._raw_client.delete(
251
+ organization_id, member_id, request_options=request_options
252
+ )
253
+ return _response.data
254
+
255
+ async def update(
256
+ self,
257
+ organization_id: str,
258
+ member_id: str,
259
+ *,
260
+ role: OrganizationMembershipsUpdateRequestRole,
261
+ request_options: typing.Optional[RequestOptions] = None,
262
+ ) -> OrganizationMembershipsUpdateResponse:
263
+ """
264
+ Parameters
265
+ ----------
266
+ organization_id : str
267
+
268
+ member_id : str
269
+
270
+ role : OrganizationMembershipsUpdateRequestRole
271
+
272
+ request_options : typing.Optional[RequestOptions]
273
+ Request-specific configuration.
274
+
275
+ Returns
276
+ -------
277
+ OrganizationMembershipsUpdateResponse
278
+ Success
279
+
280
+ Examples
281
+ --------
282
+ import asyncio
283
+
284
+ from mirascope.api._generated import AsyncMirascope
285
+
286
+ client = AsyncMirascope()
287
+
288
+
289
+ async def main() -> None:
290
+ await client.organization_memberships.update(
291
+ organization_id="organizationId",
292
+ member_id="memberId",
293
+ role="ADMIN",
294
+ )
295
+
296
+
297
+ asyncio.run(main())
298
+ """
299
+ _response = await self._raw_client.update(
300
+ organization_id, member_id, role=role, request_options=request_options
301
+ )
302
+ return _response.data