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
@@ -2,24 +2,70 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
+ from .organizations_create_payment_intent_response import (
6
+ OrganizationsCreatePaymentIntentResponse,
7
+ )
5
8
  from .organizations_create_response import OrganizationsCreateResponse
6
9
  from .organizations_create_response_role import OrganizationsCreateResponseRole
7
- from .organizations_credits_response import OrganizationsCreditsResponse
8
10
  from .organizations_get_response import OrganizationsGetResponse
9
11
  from .organizations_get_response_role import OrganizationsGetResponseRole
10
12
  from .organizations_list_response_item import OrganizationsListResponseItem
11
13
  from .organizations_list_response_item_role import OrganizationsListResponseItemRole
14
+ from .organizations_preview_subscription_change_request_target_plan import (
15
+ OrganizationsPreviewSubscriptionChangeRequestTargetPlan,
16
+ )
17
+ from .organizations_preview_subscription_change_response import (
18
+ OrganizationsPreviewSubscriptionChangeResponse,
19
+ )
20
+ from .organizations_preview_subscription_change_response_validation_errors_item import (
21
+ OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItem,
22
+ )
23
+ from .organizations_preview_subscription_change_response_validation_errors_item_resource import (
24
+ OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItemResource,
25
+ )
26
+ from .organizations_router_balance_response import OrganizationsRouterBalanceResponse
27
+ from .organizations_subscription_response import OrganizationsSubscriptionResponse
28
+ from .organizations_subscription_response_current_plan import (
29
+ OrganizationsSubscriptionResponseCurrentPlan,
30
+ )
31
+ from .organizations_subscription_response_payment_method import (
32
+ OrganizationsSubscriptionResponsePaymentMethod,
33
+ )
34
+ from .organizations_subscription_response_scheduled_change import (
35
+ OrganizationsSubscriptionResponseScheduledChange,
36
+ )
37
+ from .organizations_subscription_response_scheduled_change_target_plan import (
38
+ OrganizationsSubscriptionResponseScheduledChangeTargetPlan,
39
+ )
12
40
  from .organizations_update_response import OrganizationsUpdateResponse
13
41
  from .organizations_update_response_role import OrganizationsUpdateResponseRole
42
+ from .organizations_update_subscription_request_target_plan import (
43
+ OrganizationsUpdateSubscriptionRequestTargetPlan,
44
+ )
45
+ from .organizations_update_subscription_response import (
46
+ OrganizationsUpdateSubscriptionResponse,
47
+ )
14
48
 
15
49
  __all__ = [
50
+ "OrganizationsCreatePaymentIntentResponse",
16
51
  "OrganizationsCreateResponse",
17
52
  "OrganizationsCreateResponseRole",
18
- "OrganizationsCreditsResponse",
19
53
  "OrganizationsGetResponse",
20
54
  "OrganizationsGetResponseRole",
21
55
  "OrganizationsListResponseItem",
22
56
  "OrganizationsListResponseItemRole",
57
+ "OrganizationsPreviewSubscriptionChangeRequestTargetPlan",
58
+ "OrganizationsPreviewSubscriptionChangeResponse",
59
+ "OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItem",
60
+ "OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItemResource",
61
+ "OrganizationsRouterBalanceResponse",
62
+ "OrganizationsSubscriptionResponse",
63
+ "OrganizationsSubscriptionResponseCurrentPlan",
64
+ "OrganizationsSubscriptionResponsePaymentMethod",
65
+ "OrganizationsSubscriptionResponseScheduledChange",
66
+ "OrganizationsSubscriptionResponseScheduledChangeTargetPlan",
23
67
  "OrganizationsUpdateResponse",
24
68
  "OrganizationsUpdateResponseRole",
69
+ "OrganizationsUpdateSubscriptionRequestTargetPlan",
70
+ "OrganizationsUpdateSubscriptionResponse",
25
71
  ]
@@ -0,0 +1,24 @@
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
+
10
+
11
+ class OrganizationsCreatePaymentIntentResponse(UniversalBaseModel):
12
+ client_secret: typing_extensions.Annotated[str, FieldMetadata(alias="clientSecret")]
13
+ amount: float
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
19
+ else:
20
+
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ 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
+ OrganizationsPreviewSubscriptionChangeRequestTargetPlan = typing.Union[
6
+ typing.Literal["free", "pro", "team"], typing.Any
7
+ ]
@@ -0,0 +1,47 @@
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 .organizations_preview_subscription_change_response_validation_errors_item import (
11
+ OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItem,
12
+ )
13
+
14
+
15
+ class OrganizationsPreviewSubscriptionChangeResponse(UniversalBaseModel):
16
+ is_upgrade: typing_extensions.Annotated[bool, FieldMetadata(alias="isUpgrade")]
17
+ prorated_amount_in_dollars: typing_extensions.Annotated[
18
+ float, FieldMetadata(alias="proratedAmountInDollars")
19
+ ]
20
+ next_billing_date: typing_extensions.Annotated[
21
+ Date, FieldMetadata(alias="nextBillingDate")
22
+ ]
23
+ recurring_amount_in_dollars: typing_extensions.Annotated[
24
+ float, FieldMetadata(alias="recurringAmountInDollars")
25
+ ]
26
+ can_downgrade: typing_extensions.Annotated[
27
+ typing.Optional[bool], FieldMetadata(alias="canDowngrade")
28
+ ] = None
29
+ validation_errors: typing_extensions.Annotated[
30
+ typing.Optional[
31
+ typing.List[
32
+ OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItem
33
+ ]
34
+ ],
35
+ FieldMetadata(alias="validationErrors"),
36
+ ] = None
37
+
38
+ if IS_PYDANTIC_V2:
39
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
40
+ extra="allow", frozen=True
41
+ ) # type: ignore # Pydantic v2
42
+ else:
43
+
44
+ class Config:
45
+ frozen = True
46
+ smart_union = True
47
+ extra = pydantic.Extra.allow
@@ -0,0 +1,33 @@
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 .organizations_preview_subscription_change_response_validation_errors_item_resource import (
10
+ OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItemResource,
11
+ )
12
+
13
+
14
+ class OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItem(
15
+ UniversalBaseModel
16
+ ):
17
+ resource: OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItemResource
18
+ current_usage: typing_extensions.Annotated[
19
+ float, FieldMetadata(alias="currentUsage")
20
+ ]
21
+ limit: float
22
+ message: str
23
+
24
+ if IS_PYDANTIC_V2:
25
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
26
+ extra="allow", frozen=True
27
+ ) # type: ignore # Pydantic v2
28
+ else:
29
+
30
+ class Config:
31
+ frozen = True
32
+ smart_union = True
33
+ 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
+ OrganizationsPreviewSubscriptionChangeResponseValidationErrorsItemResource = (
6
+ typing.Union[typing.Literal["seats", "projects"], typing.Any]
7
+ )
@@ -0,0 +1,24 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+
8
+
9
+ class OrganizationsRouterBalanceResponse(UniversalBaseModel):
10
+ balance: str = pydantic.Field()
11
+ """
12
+ Balance in centi-cents (1/10000 of a dollar)
13
+ """
14
+
15
+ if IS_PYDANTIC_V2:
16
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
17
+ extra="allow", frozen=True
18
+ ) # type: ignore # Pydantic v2
19
+ else:
20
+
21
+ class Config:
22
+ frozen = True
23
+ smart_union = True
24
+ extra = pydantic.Extra.allow
@@ -0,0 +1,53 @@
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 .organizations_subscription_response_current_plan import (
11
+ OrganizationsSubscriptionResponseCurrentPlan,
12
+ )
13
+ from .organizations_subscription_response_payment_method import (
14
+ OrganizationsSubscriptionResponsePaymentMethod,
15
+ )
16
+ from .organizations_subscription_response_scheduled_change import (
17
+ OrganizationsSubscriptionResponseScheduledChange,
18
+ )
19
+
20
+
21
+ class OrganizationsSubscriptionResponse(UniversalBaseModel):
22
+ subscription_id: typing_extensions.Annotated[
23
+ str, FieldMetadata(alias="subscriptionId")
24
+ ]
25
+ current_plan: typing_extensions.Annotated[
26
+ OrganizationsSubscriptionResponseCurrentPlan, FieldMetadata(alias="currentPlan")
27
+ ]
28
+ status: str
29
+ current_period_end: typing_extensions.Annotated[
30
+ Date, FieldMetadata(alias="currentPeriodEnd")
31
+ ]
32
+ has_payment_method: typing_extensions.Annotated[
33
+ bool, FieldMetadata(alias="hasPaymentMethod")
34
+ ]
35
+ payment_method: typing_extensions.Annotated[
36
+ typing.Optional[OrganizationsSubscriptionResponsePaymentMethod],
37
+ FieldMetadata(alias="paymentMethod"),
38
+ ] = None
39
+ scheduled_change: typing_extensions.Annotated[
40
+ typing.Optional[OrganizationsSubscriptionResponseScheduledChange],
41
+ FieldMetadata(alias="scheduledChange"),
42
+ ] = None
43
+
44
+ if IS_PYDANTIC_V2:
45
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
46
+ extra="allow", frozen=True
47
+ ) # type: ignore # Pydantic v2
48
+ else:
49
+
50
+ class Config:
51
+ frozen = True
52
+ smart_union = True
53
+ 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
+ OrganizationsSubscriptionResponseCurrentPlan = typing.Union[
6
+ typing.Literal["free", "pro", "team"], typing.Any
7
+ ]
@@ -0,0 +1,26 @@
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
+
10
+
11
+ class OrganizationsSubscriptionResponsePaymentMethod(UniversalBaseModel):
12
+ brand: str
13
+ last4: str
14
+ exp_month: typing_extensions.Annotated[float, FieldMetadata(alias="expMonth")]
15
+ exp_year: typing_extensions.Annotated[float, FieldMetadata(alias="expYear")]
16
+
17
+ if IS_PYDANTIC_V2:
18
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
19
+ extra="allow", frozen=True
20
+ ) # type: ignore # Pydantic v2
21
+ else:
22
+
23
+ class Config:
24
+ frozen = True
25
+ smart_union = True
26
+ extra = pydantic.Extra.allow
@@ -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 .organizations_subscription_response_scheduled_change_target_plan import (
11
+ OrganizationsSubscriptionResponseScheduledChangeTargetPlan,
12
+ )
13
+
14
+
15
+ class OrganizationsSubscriptionResponseScheduledChange(UniversalBaseModel):
16
+ target_plan: typing_extensions.Annotated[
17
+ OrganizationsSubscriptionResponseScheduledChangeTargetPlan,
18
+ FieldMetadata(alias="targetPlan"),
19
+ ]
20
+ effective_date: typing_extensions.Annotated[
21
+ Date, FieldMetadata(alias="effectiveDate")
22
+ ]
23
+ schedule_id: typing_extensions.Annotated[str, FieldMetadata(alias="scheduleId")]
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
+ OrganizationsSubscriptionResponseScheduledChangeTargetPlan = typing.Union[
6
+ typing.Literal["free", "pro", "team"], 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
+ OrganizationsUpdateSubscriptionRequestTargetPlan = typing.Union[
6
+ typing.Literal["free", "pro", "team"], typing.Any
7
+ ]
@@ -0,0 +1,35 @@
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
+
11
+
12
+ class OrganizationsUpdateSubscriptionResponse(UniversalBaseModel):
13
+ requires_payment: typing_extensions.Annotated[
14
+ bool, FieldMetadata(alias="requiresPayment")
15
+ ]
16
+ client_secret: typing_extensions.Annotated[
17
+ typing.Optional[str], FieldMetadata(alias="clientSecret")
18
+ ] = None
19
+ scheduled_for: typing_extensions.Annotated[
20
+ typing.Optional[Date], FieldMetadata(alias="scheduledFor")
21
+ ] = None
22
+ schedule_id: typing_extensions.Annotated[
23
+ typing.Optional[str], FieldMetadata(alias="scheduleId")
24
+ ] = None
25
+
26
+ if IS_PYDANTIC_V2:
27
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
28
+ extra="allow", frozen=True
29
+ ) # type: ignore # Pydantic v2
30
+ else:
31
+
32
+ class Config:
33
+ frozen = True
34
+ smart_union = True
35
+ extra = pydantic.Extra.allow
@@ -0,0 +1,25 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .types import (
6
+ ProjectMembershipsCreateRequestRole,
7
+ ProjectMembershipsCreateResponse,
8
+ ProjectMembershipsCreateResponseRole,
9
+ ProjectMembershipsListResponseItem,
10
+ ProjectMembershipsListResponseItemRole,
11
+ ProjectMembershipsUpdateRequestRole,
12
+ ProjectMembershipsUpdateResponse,
13
+ ProjectMembershipsUpdateResponseRole,
14
+ )
15
+
16
+ __all__ = [
17
+ "ProjectMembershipsCreateRequestRole",
18
+ "ProjectMembershipsCreateResponse",
19
+ "ProjectMembershipsCreateResponseRole",
20
+ "ProjectMembershipsListResponseItem",
21
+ "ProjectMembershipsListResponseItemRole",
22
+ "ProjectMembershipsUpdateRequestRole",
23
+ "ProjectMembershipsUpdateResponse",
24
+ "ProjectMembershipsUpdateResponseRole",
25
+ ]