mirascope 2.0.0a2__py3-none-any.whl → 2.0.0a4__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 (252) hide show
  1. mirascope/__init__.py +2 -2
  2. mirascope/api/__init__.py +6 -0
  3. mirascope/api/_generated/README.md +207 -0
  4. mirascope/api/_generated/__init__.py +141 -0
  5. mirascope/api/_generated/client.py +163 -0
  6. mirascope/api/_generated/core/__init__.py +52 -0
  7. mirascope/api/_generated/core/api_error.py +23 -0
  8. mirascope/api/_generated/core/client_wrapper.py +58 -0
  9. mirascope/api/_generated/core/datetime_utils.py +30 -0
  10. mirascope/api/_generated/core/file.py +70 -0
  11. mirascope/api/_generated/core/force_multipart.py +16 -0
  12. mirascope/api/_generated/core/http_client.py +619 -0
  13. mirascope/api/_generated/core/http_response.py +55 -0
  14. mirascope/api/_generated/core/jsonable_encoder.py +102 -0
  15. mirascope/api/_generated/core/pydantic_utilities.py +310 -0
  16. mirascope/api/_generated/core/query_encoder.py +60 -0
  17. mirascope/api/_generated/core/remove_none_from_dict.py +11 -0
  18. mirascope/api/_generated/core/request_options.py +35 -0
  19. mirascope/api/_generated/core/serialization.py +282 -0
  20. mirascope/api/_generated/docs/__init__.py +4 -0
  21. mirascope/api/_generated/docs/client.py +95 -0
  22. mirascope/api/_generated/docs/raw_client.py +132 -0
  23. mirascope/api/_generated/environment.py +9 -0
  24. mirascope/api/_generated/errors/__init__.py +17 -0
  25. mirascope/api/_generated/errors/bad_request_error.py +15 -0
  26. mirascope/api/_generated/errors/conflict_error.py +15 -0
  27. mirascope/api/_generated/errors/forbidden_error.py +15 -0
  28. mirascope/api/_generated/errors/internal_server_error.py +15 -0
  29. mirascope/api/_generated/errors/not_found_error.py +15 -0
  30. mirascope/api/_generated/health/__init__.py +7 -0
  31. mirascope/api/_generated/health/client.py +96 -0
  32. mirascope/api/_generated/health/raw_client.py +129 -0
  33. mirascope/api/_generated/health/types/__init__.py +8 -0
  34. mirascope/api/_generated/health/types/health_check_response.py +24 -0
  35. mirascope/api/_generated/health/types/health_check_response_status.py +5 -0
  36. mirascope/api/_generated/organizations/__init__.py +25 -0
  37. mirascope/api/_generated/organizations/client.py +380 -0
  38. mirascope/api/_generated/organizations/raw_client.py +876 -0
  39. mirascope/api/_generated/organizations/types/__init__.py +23 -0
  40. mirascope/api/_generated/organizations/types/organizations_create_response.py +24 -0
  41. mirascope/api/_generated/organizations/types/organizations_create_response_role.py +7 -0
  42. mirascope/api/_generated/organizations/types/organizations_get_response.py +24 -0
  43. mirascope/api/_generated/organizations/types/organizations_get_response_role.py +7 -0
  44. mirascope/api/_generated/organizations/types/organizations_list_response_item.py +24 -0
  45. mirascope/api/_generated/organizations/types/organizations_list_response_item_role.py +7 -0
  46. mirascope/api/_generated/organizations/types/organizations_update_response.py +24 -0
  47. mirascope/api/_generated/organizations/types/organizations_update_response_role.py +7 -0
  48. mirascope/api/_generated/projects/__init__.py +17 -0
  49. mirascope/api/_generated/projects/client.py +458 -0
  50. mirascope/api/_generated/projects/raw_client.py +1016 -0
  51. mirascope/api/_generated/projects/types/__init__.py +15 -0
  52. mirascope/api/_generated/projects/types/projects_create_response.py +30 -0
  53. mirascope/api/_generated/projects/types/projects_get_response.py +30 -0
  54. mirascope/api/_generated/projects/types/projects_list_response_item.py +30 -0
  55. mirascope/api/_generated/projects/types/projects_update_response.py +30 -0
  56. mirascope/api/_generated/reference.md +753 -0
  57. mirascope/api/_generated/traces/__init__.py +55 -0
  58. mirascope/api/_generated/traces/client.py +162 -0
  59. mirascope/api/_generated/traces/raw_client.py +168 -0
  60. mirascope/api/_generated/traces/types/__init__.py +95 -0
  61. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item.py +36 -0
  62. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource.py +31 -0
  63. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item.py +25 -0
  64. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value.py +54 -0
  65. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_array_value.py +23 -0
  66. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value.py +28 -0
  67. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item.py +24 -0
  68. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item.py +35 -0
  69. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope.py +35 -0
  70. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item.py +27 -0
  71. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value.py +54 -0
  72. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value.py +23 -0
  73. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value.py +28 -0
  74. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item.py +24 -0
  75. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item.py +60 -0
  76. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item.py +29 -0
  77. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value.py +54 -0
  78. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value.py +23 -0
  79. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value.py +28 -0
  80. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item.py +24 -0
  81. mirascope/api/_generated/traces/types/traces_create_request_resource_spans_item_scope_spans_item_spans_item_status.py +24 -0
  82. mirascope/api/_generated/traces/types/traces_create_response.py +27 -0
  83. mirascope/api/_generated/traces/types/traces_create_response_partial_success.py +28 -0
  84. mirascope/api/_generated/types/__init__.py +37 -0
  85. mirascope/api/_generated/types/already_exists_error.py +24 -0
  86. mirascope/api/_generated/types/already_exists_error_tag.py +5 -0
  87. mirascope/api/_generated/types/database_error.py +24 -0
  88. mirascope/api/_generated/types/database_error_tag.py +5 -0
  89. mirascope/api/_generated/types/http_api_decode_error.py +29 -0
  90. mirascope/api/_generated/types/http_api_decode_error_tag.py +5 -0
  91. mirascope/api/_generated/types/issue.py +40 -0
  92. mirascope/api/_generated/types/issue_tag.py +17 -0
  93. mirascope/api/_generated/types/not_found_error_body.py +24 -0
  94. mirascope/api/_generated/types/not_found_error_tag.py +5 -0
  95. mirascope/api/_generated/types/permission_denied_error.py +24 -0
  96. mirascope/api/_generated/types/permission_denied_error_tag.py +7 -0
  97. mirascope/api/_generated/types/property_key.py +7 -0
  98. mirascope/api/_generated/types/property_key_key.py +27 -0
  99. mirascope/api/_generated/types/property_key_key_tag.py +5 -0
  100. mirascope/api/client.py +255 -0
  101. mirascope/api/settings.py +81 -0
  102. mirascope/llm/__init__.py +45 -11
  103. mirascope/llm/calls/calls.py +81 -57
  104. mirascope/llm/calls/decorator.py +121 -115
  105. mirascope/llm/content/__init__.py +3 -2
  106. mirascope/llm/context/_utils.py +19 -6
  107. mirascope/llm/exceptions.py +30 -16
  108. mirascope/llm/formatting/_utils.py +9 -5
  109. mirascope/llm/formatting/format.py +2 -2
  110. mirascope/llm/formatting/from_call_args.py +2 -2
  111. mirascope/llm/messages/message.py +13 -5
  112. mirascope/llm/models/__init__.py +2 -2
  113. mirascope/llm/models/models.py +189 -81
  114. mirascope/llm/prompts/__init__.py +13 -12
  115. mirascope/llm/prompts/_utils.py +27 -24
  116. mirascope/llm/prompts/decorator.py +133 -204
  117. mirascope/llm/prompts/prompts.py +424 -0
  118. mirascope/llm/prompts/protocols.py +25 -59
  119. mirascope/llm/providers/__init__.py +44 -0
  120. mirascope/llm/{clients → providers}/_missing_import_stubs.py +8 -6
  121. mirascope/llm/providers/anthropic/__init__.py +29 -0
  122. mirascope/llm/providers/anthropic/_utils/__init__.py +23 -0
  123. mirascope/llm/providers/anthropic/_utils/beta_decode.py +271 -0
  124. mirascope/llm/providers/anthropic/_utils/beta_encode.py +216 -0
  125. mirascope/llm/{clients → providers}/anthropic/_utils/decode.py +44 -11
  126. mirascope/llm/providers/anthropic/_utils/encode.py +356 -0
  127. mirascope/llm/providers/anthropic/beta_provider.py +322 -0
  128. mirascope/llm/providers/anthropic/model_id.py +23 -0
  129. mirascope/llm/providers/anthropic/model_info.py +87 -0
  130. mirascope/llm/providers/anthropic/provider.py +416 -0
  131. mirascope/llm/{clients → providers}/base/__init__.py +3 -3
  132. mirascope/llm/{clients → providers}/base/_utils.py +25 -8
  133. mirascope/llm/{clients/base/client.py → providers/base/base_provider.py} +255 -126
  134. mirascope/llm/providers/google/__init__.py +21 -0
  135. mirascope/llm/{clients → providers}/google/_utils/decode.py +61 -7
  136. mirascope/llm/{clients → providers}/google/_utils/encode.py +44 -30
  137. mirascope/llm/providers/google/model_id.py +22 -0
  138. mirascope/llm/providers/google/model_info.py +62 -0
  139. mirascope/llm/providers/google/provider.py +442 -0
  140. mirascope/llm/providers/load_provider.py +54 -0
  141. mirascope/llm/providers/mlx/__init__.py +24 -0
  142. mirascope/llm/providers/mlx/_utils.py +129 -0
  143. mirascope/llm/providers/mlx/encoding/__init__.py +8 -0
  144. mirascope/llm/providers/mlx/encoding/base.py +69 -0
  145. mirascope/llm/providers/mlx/encoding/transformers.py +147 -0
  146. mirascope/llm/providers/mlx/mlx.py +237 -0
  147. mirascope/llm/providers/mlx/model_id.py +17 -0
  148. mirascope/llm/providers/mlx/provider.py +415 -0
  149. mirascope/llm/providers/model_id.py +16 -0
  150. mirascope/llm/providers/ollama/__init__.py +19 -0
  151. mirascope/llm/providers/ollama/provider.py +71 -0
  152. mirascope/llm/providers/openai/__init__.py +6 -0
  153. mirascope/llm/providers/openai/completions/__init__.py +25 -0
  154. mirascope/llm/{clients → providers}/openai/completions/_utils/__init__.py +2 -0
  155. mirascope/llm/{clients → providers}/openai/completions/_utils/decode.py +60 -6
  156. mirascope/llm/{clients → providers}/openai/completions/_utils/encode.py +37 -26
  157. mirascope/llm/providers/openai/completions/base_provider.py +513 -0
  158. mirascope/llm/providers/openai/completions/provider.py +22 -0
  159. mirascope/llm/providers/openai/model_id.py +31 -0
  160. mirascope/llm/providers/openai/model_info.py +303 -0
  161. mirascope/llm/providers/openai/provider.py +398 -0
  162. mirascope/llm/providers/openai/responses/__init__.py +21 -0
  163. mirascope/llm/{clients → providers}/openai/responses/_utils/decode.py +59 -6
  164. mirascope/llm/{clients → providers}/openai/responses/_utils/encode.py +34 -23
  165. mirascope/llm/providers/openai/responses/provider.py +469 -0
  166. mirascope/llm/providers/provider_id.py +23 -0
  167. mirascope/llm/providers/provider_registry.py +169 -0
  168. mirascope/llm/providers/together/__init__.py +19 -0
  169. mirascope/llm/providers/together/provider.py +40 -0
  170. mirascope/llm/responses/__init__.py +3 -0
  171. mirascope/llm/responses/base_response.py +14 -5
  172. mirascope/llm/responses/base_stream_response.py +35 -6
  173. mirascope/llm/responses/finish_reason.py +1 -0
  174. mirascope/llm/responses/response.py +33 -13
  175. mirascope/llm/responses/root_response.py +12 -13
  176. mirascope/llm/responses/stream_response.py +35 -23
  177. mirascope/llm/responses/usage.py +95 -0
  178. mirascope/llm/tools/__init__.py +9 -2
  179. mirascope/llm/tools/_utils.py +12 -3
  180. mirascope/llm/tools/protocols.py +4 -4
  181. mirascope/llm/tools/tool_schema.py +44 -9
  182. mirascope/llm/tools/tools.py +10 -9
  183. mirascope/ops/__init__.py +156 -0
  184. mirascope/ops/_internal/__init__.py +5 -0
  185. mirascope/ops/_internal/closure.py +1118 -0
  186. mirascope/ops/_internal/configuration.py +126 -0
  187. mirascope/ops/_internal/context.py +76 -0
  188. mirascope/ops/_internal/exporters/__init__.py +26 -0
  189. mirascope/ops/_internal/exporters/exporters.py +342 -0
  190. mirascope/ops/_internal/exporters/processors.py +104 -0
  191. mirascope/ops/_internal/exporters/types.py +165 -0
  192. mirascope/ops/_internal/exporters/utils.py +29 -0
  193. mirascope/ops/_internal/instrumentation/__init__.py +8 -0
  194. mirascope/ops/_internal/instrumentation/llm/__init__.py +8 -0
  195. mirascope/ops/_internal/instrumentation/llm/encode.py +238 -0
  196. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/__init__.py +38 -0
  197. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_input_messages.py +31 -0
  198. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_output_messages.py +38 -0
  199. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/gen_ai_system_instructions.py +18 -0
  200. mirascope/ops/_internal/instrumentation/llm/gen_ai_types/shared.py +100 -0
  201. mirascope/ops/_internal/instrumentation/llm/llm.py +1288 -0
  202. mirascope/ops/_internal/propagation.py +198 -0
  203. mirascope/ops/_internal/protocols.py +51 -0
  204. mirascope/ops/_internal/session.py +139 -0
  205. mirascope/ops/_internal/spans.py +232 -0
  206. mirascope/ops/_internal/traced_calls.py +371 -0
  207. mirascope/ops/_internal/traced_functions.py +394 -0
  208. mirascope/ops/_internal/tracing.py +276 -0
  209. mirascope/ops/_internal/types.py +13 -0
  210. mirascope/ops/_internal/utils.py +75 -0
  211. mirascope/ops/_internal/versioned_calls.py +512 -0
  212. mirascope/ops/_internal/versioned_functions.py +346 -0
  213. mirascope/ops/_internal/versioning.py +303 -0
  214. mirascope/ops/exceptions.py +21 -0
  215. {mirascope-2.0.0a2.dist-info → mirascope-2.0.0a4.dist-info}/METADATA +78 -3
  216. mirascope-2.0.0a4.dist-info/RECORD +247 -0
  217. {mirascope-2.0.0a2.dist-info → mirascope-2.0.0a4.dist-info}/WHEEL +1 -1
  218. mirascope/graphs/__init__.py +0 -22
  219. mirascope/graphs/finite_state_machine.py +0 -625
  220. mirascope/llm/agents/__init__.py +0 -15
  221. mirascope/llm/agents/agent.py +0 -97
  222. mirascope/llm/agents/agent_template.py +0 -45
  223. mirascope/llm/agents/decorator.py +0 -176
  224. mirascope/llm/calls/base_call.py +0 -33
  225. mirascope/llm/clients/__init__.py +0 -34
  226. mirascope/llm/clients/anthropic/__init__.py +0 -25
  227. mirascope/llm/clients/anthropic/_utils/encode.py +0 -243
  228. mirascope/llm/clients/anthropic/clients.py +0 -819
  229. mirascope/llm/clients/anthropic/model_ids.py +0 -8
  230. mirascope/llm/clients/google/__init__.py +0 -20
  231. mirascope/llm/clients/google/clients.py +0 -853
  232. mirascope/llm/clients/google/model_ids.py +0 -15
  233. mirascope/llm/clients/openai/__init__.py +0 -25
  234. mirascope/llm/clients/openai/completions/__init__.py +0 -28
  235. mirascope/llm/clients/openai/completions/_utils/model_features.py +0 -81
  236. mirascope/llm/clients/openai/completions/clients.py +0 -833
  237. mirascope/llm/clients/openai/completions/model_ids.py +0 -8
  238. mirascope/llm/clients/openai/responses/__init__.py +0 -26
  239. mirascope/llm/clients/openai/responses/_utils/__init__.py +0 -13
  240. mirascope/llm/clients/openai/responses/_utils/model_features.py +0 -87
  241. mirascope/llm/clients/openai/responses/clients.py +0 -832
  242. mirascope/llm/clients/openai/responses/model_ids.py +0 -8
  243. mirascope/llm/clients/openai/shared/__init__.py +0 -7
  244. mirascope/llm/clients/openai/shared/_utils.py +0 -55
  245. mirascope/llm/clients/providers.py +0 -175
  246. mirascope-2.0.0a2.dist-info/RECORD +0 -102
  247. /mirascope/llm/{clients → providers}/base/kwargs.py +0 -0
  248. /mirascope/llm/{clients → providers}/base/params.py +0 -0
  249. /mirascope/llm/{clients/anthropic → providers/google}/_utils/__init__.py +0 -0
  250. /mirascope/llm/{clients → providers}/google/message.py +0 -0
  251. /mirascope/llm/{clients/google → providers/openai/responses}/_utils/__init__.py +0 -0
  252. {mirascope-2.0.0a2.dist-info → mirascope-2.0.0a4.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,55 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .types import (
6
+ TracesCreateRequestResourceSpansItem,
7
+ TracesCreateRequestResourceSpansItemResource,
8
+ TracesCreateRequestResourceSpansItemResourceAttributesItem,
9
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValue,
10
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue,
11
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue,
12
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValueValuesItem,
13
+ TracesCreateRequestResourceSpansItemScopeSpansItem,
14
+ TracesCreateRequestResourceSpansItemScopeSpansItemScope,
15
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItem,
16
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValue,
17
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueArrayValue,
18
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValue,
19
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValueValuesItem,
20
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem,
21
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItem,
22
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValue,
23
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueArrayValue,
24
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValue,
25
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValueValuesItem,
26
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemStatus,
27
+ TracesCreateResponse,
28
+ TracesCreateResponsePartialSuccess,
29
+ )
30
+
31
+ __all__ = [
32
+ "TracesCreateRequestResourceSpansItem",
33
+ "TracesCreateRequestResourceSpansItemResource",
34
+ "TracesCreateRequestResourceSpansItemResourceAttributesItem",
35
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValue",
36
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue",
37
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue",
38
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValueValuesItem",
39
+ "TracesCreateRequestResourceSpansItemScopeSpansItem",
40
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScope",
41
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItem",
42
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValue",
43
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueArrayValue",
44
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValue",
45
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValueValuesItem",
46
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem",
47
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItem",
48
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValue",
49
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueArrayValue",
50
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValue",
51
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValueValuesItem",
52
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemStatus",
53
+ "TracesCreateResponse",
54
+ "TracesCreateResponsePartialSuccess",
55
+ ]
@@ -0,0 +1,162 @@
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 AsyncRawTracesClient, RawTracesClient
8
+ from .types.traces_create_request_resource_spans_item import (
9
+ TracesCreateRequestResourceSpansItem,
10
+ )
11
+ from .types.traces_create_response import TracesCreateResponse
12
+
13
+ # this is used as the default value for optional parameters
14
+ OMIT = typing.cast(typing.Any, ...)
15
+
16
+
17
+ class TracesClient:
18
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
19
+ self._raw_client = RawTracesClient(client_wrapper=client_wrapper)
20
+
21
+ @property
22
+ def with_raw_response(self) -> RawTracesClient:
23
+ """
24
+ Retrieves a raw implementation of this client that returns raw responses.
25
+
26
+ Returns
27
+ -------
28
+ RawTracesClient
29
+ """
30
+ return self._raw_client
31
+
32
+ def create(
33
+ self,
34
+ *,
35
+ resource_spans: typing.Sequence[TracesCreateRequestResourceSpansItem],
36
+ request_options: typing.Optional[RequestOptions] = None,
37
+ ) -> TracesCreateResponse:
38
+ """
39
+ Parameters
40
+ ----------
41
+ resource_spans : typing.Sequence[TracesCreateRequestResourceSpansItem]
42
+
43
+ request_options : typing.Optional[RequestOptions]
44
+ Request-specific configuration.
45
+
46
+ Returns
47
+ -------
48
+ TracesCreateResponse
49
+ Success
50
+
51
+ Examples
52
+ --------
53
+ from mirascope.api._generated import Mirascope
54
+ from mirascope.api._generated.traces import (
55
+ TracesCreateRequestResourceSpansItem,
56
+ TracesCreateRequestResourceSpansItemScopeSpansItem,
57
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem,
58
+ )
59
+
60
+ client = Mirascope()
61
+ client.traces.create(
62
+ resource_spans=[
63
+ TracesCreateRequestResourceSpansItem(
64
+ scope_spans=[
65
+ TracesCreateRequestResourceSpansItemScopeSpansItem(
66
+ spans=[
67
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem(
68
+ trace_id="traceId",
69
+ span_id="spanId",
70
+ name="name",
71
+ start_time_unix_nano="startTimeUnixNano",
72
+ end_time_unix_nano="endTimeUnixNano",
73
+ )
74
+ ],
75
+ )
76
+ ],
77
+ )
78
+ ],
79
+ )
80
+ """
81
+ _response = self._raw_client.create(
82
+ resource_spans=resource_spans, request_options=request_options
83
+ )
84
+ return _response.data
85
+
86
+
87
+ class AsyncTracesClient:
88
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
89
+ self._raw_client = AsyncRawTracesClient(client_wrapper=client_wrapper)
90
+
91
+ @property
92
+ def with_raw_response(self) -> AsyncRawTracesClient:
93
+ """
94
+ Retrieves a raw implementation of this client that returns raw responses.
95
+
96
+ Returns
97
+ -------
98
+ AsyncRawTracesClient
99
+ """
100
+ return self._raw_client
101
+
102
+ async def create(
103
+ self,
104
+ *,
105
+ resource_spans: typing.Sequence[TracesCreateRequestResourceSpansItem],
106
+ request_options: typing.Optional[RequestOptions] = None,
107
+ ) -> TracesCreateResponse:
108
+ """
109
+ Parameters
110
+ ----------
111
+ resource_spans : typing.Sequence[TracesCreateRequestResourceSpansItem]
112
+
113
+ request_options : typing.Optional[RequestOptions]
114
+ Request-specific configuration.
115
+
116
+ Returns
117
+ -------
118
+ TracesCreateResponse
119
+ Success
120
+
121
+ Examples
122
+ --------
123
+ import asyncio
124
+
125
+ from mirascope.api._generated import AsyncMirascope
126
+ from mirascope.api._generated.traces import (
127
+ TracesCreateRequestResourceSpansItem,
128
+ TracesCreateRequestResourceSpansItemScopeSpansItem,
129
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem,
130
+ )
131
+
132
+ client = AsyncMirascope()
133
+
134
+
135
+ async def main() -> None:
136
+ await client.traces.create(
137
+ resource_spans=[
138
+ TracesCreateRequestResourceSpansItem(
139
+ scope_spans=[
140
+ TracesCreateRequestResourceSpansItemScopeSpansItem(
141
+ spans=[
142
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem(
143
+ trace_id="traceId",
144
+ span_id="spanId",
145
+ name="name",
146
+ start_time_unix_nano="startTimeUnixNano",
147
+ end_time_unix_nano="endTimeUnixNano",
148
+ )
149
+ ],
150
+ )
151
+ ],
152
+ )
153
+ ],
154
+ )
155
+
156
+
157
+ asyncio.run(main())
158
+ """
159
+ _response = await self._raw_client.create(
160
+ resource_spans=resource_spans, request_options=request_options
161
+ )
162
+ return _response.data
@@ -0,0 +1,168 @@
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.pydantic_utilities import parse_obj_as
10
+ from ..core.request_options import RequestOptions
11
+ from ..core.serialization import convert_and_respect_annotation_metadata
12
+ from ..errors.bad_request_error import BadRequestError
13
+ from ..types.http_api_decode_error import HttpApiDecodeError
14
+ from .types.traces_create_request_resource_spans_item import (
15
+ TracesCreateRequestResourceSpansItem,
16
+ )
17
+ from .types.traces_create_response import TracesCreateResponse
18
+
19
+ # this is used as the default value for optional parameters
20
+ OMIT = typing.cast(typing.Any, ...)
21
+
22
+
23
+ class RawTracesClient:
24
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
25
+ self._client_wrapper = client_wrapper
26
+
27
+ def create(
28
+ self,
29
+ *,
30
+ resource_spans: typing.Sequence[TracesCreateRequestResourceSpansItem],
31
+ request_options: typing.Optional[RequestOptions] = None,
32
+ ) -> HttpResponse[TracesCreateResponse]:
33
+ """
34
+ Parameters
35
+ ----------
36
+ resource_spans : typing.Sequence[TracesCreateRequestResourceSpansItem]
37
+
38
+ request_options : typing.Optional[RequestOptions]
39
+ Request-specific configuration.
40
+
41
+ Returns
42
+ -------
43
+ HttpResponse[TracesCreateResponse]
44
+ Success
45
+ """
46
+ _response = self._client_wrapper.httpx_client.request(
47
+ "traces",
48
+ method="POST",
49
+ json={
50
+ "resourceSpans": convert_and_respect_annotation_metadata(
51
+ object_=resource_spans,
52
+ annotation=typing.Sequence[TracesCreateRequestResourceSpansItem],
53
+ direction="write",
54
+ ),
55
+ },
56
+ headers={
57
+ "content-type": "application/json",
58
+ },
59
+ request_options=request_options,
60
+ omit=OMIT,
61
+ )
62
+ try:
63
+ if 200 <= _response.status_code < 300:
64
+ _data = typing.cast(
65
+ TracesCreateResponse,
66
+ parse_obj_as(
67
+ type_=TracesCreateResponse, # type: ignore
68
+ object_=_response.json(),
69
+ ),
70
+ )
71
+ return HttpResponse(response=_response, data=_data)
72
+ if _response.status_code == 400:
73
+ raise BadRequestError(
74
+ headers=dict(_response.headers),
75
+ body=typing.cast(
76
+ HttpApiDecodeError,
77
+ parse_obj_as(
78
+ type_=HttpApiDecodeError, # type: ignore
79
+ object_=_response.json(),
80
+ ),
81
+ ),
82
+ )
83
+ _response_json = _response.json()
84
+ except JSONDecodeError:
85
+ raise ApiError(
86
+ status_code=_response.status_code,
87
+ headers=dict(_response.headers),
88
+ body=_response.text,
89
+ )
90
+ raise ApiError(
91
+ status_code=_response.status_code,
92
+ headers=dict(_response.headers),
93
+ body=_response_json,
94
+ )
95
+
96
+
97
+ class AsyncRawTracesClient:
98
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
99
+ self._client_wrapper = client_wrapper
100
+
101
+ async def create(
102
+ self,
103
+ *,
104
+ resource_spans: typing.Sequence[TracesCreateRequestResourceSpansItem],
105
+ request_options: typing.Optional[RequestOptions] = None,
106
+ ) -> AsyncHttpResponse[TracesCreateResponse]:
107
+ """
108
+ Parameters
109
+ ----------
110
+ resource_spans : typing.Sequence[TracesCreateRequestResourceSpansItem]
111
+
112
+ request_options : typing.Optional[RequestOptions]
113
+ Request-specific configuration.
114
+
115
+ Returns
116
+ -------
117
+ AsyncHttpResponse[TracesCreateResponse]
118
+ Success
119
+ """
120
+ _response = await self._client_wrapper.httpx_client.request(
121
+ "traces",
122
+ method="POST",
123
+ json={
124
+ "resourceSpans": convert_and_respect_annotation_metadata(
125
+ object_=resource_spans,
126
+ annotation=typing.Sequence[TracesCreateRequestResourceSpansItem],
127
+ direction="write",
128
+ ),
129
+ },
130
+ headers={
131
+ "content-type": "application/json",
132
+ },
133
+ request_options=request_options,
134
+ omit=OMIT,
135
+ )
136
+ try:
137
+ if 200 <= _response.status_code < 300:
138
+ _data = typing.cast(
139
+ TracesCreateResponse,
140
+ parse_obj_as(
141
+ type_=TracesCreateResponse, # type: ignore
142
+ object_=_response.json(),
143
+ ),
144
+ )
145
+ return AsyncHttpResponse(response=_response, data=_data)
146
+ if _response.status_code == 400:
147
+ raise BadRequestError(
148
+ headers=dict(_response.headers),
149
+ body=typing.cast(
150
+ HttpApiDecodeError,
151
+ parse_obj_as(
152
+ type_=HttpApiDecodeError, # type: ignore
153
+ object_=_response.json(),
154
+ ),
155
+ ),
156
+ )
157
+ _response_json = _response.json()
158
+ except JSONDecodeError:
159
+ raise ApiError(
160
+ status_code=_response.status_code,
161
+ headers=dict(_response.headers),
162
+ body=_response.text,
163
+ )
164
+ raise ApiError(
165
+ status_code=_response.status_code,
166
+ headers=dict(_response.headers),
167
+ body=_response_json,
168
+ )
@@ -0,0 +1,95 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ from .traces_create_request_resource_spans_item import (
6
+ TracesCreateRequestResourceSpansItem,
7
+ )
8
+ from .traces_create_request_resource_spans_item_resource import (
9
+ TracesCreateRequestResourceSpansItemResource,
10
+ )
11
+ from .traces_create_request_resource_spans_item_resource_attributes_item import (
12
+ TracesCreateRequestResourceSpansItemResourceAttributesItem,
13
+ )
14
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value import (
15
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValue,
16
+ )
17
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value_array_value import (
18
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue,
19
+ )
20
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value import (
21
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue,
22
+ )
23
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item import (
24
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValueValuesItem,
25
+ )
26
+ from .traces_create_request_resource_spans_item_scope_spans_item import (
27
+ TracesCreateRequestResourceSpansItemScopeSpansItem,
28
+ )
29
+ from .traces_create_request_resource_spans_item_scope_spans_item_scope import (
30
+ TracesCreateRequestResourceSpansItemScopeSpansItemScope,
31
+ )
32
+ from .traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item import (
33
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItem,
34
+ )
35
+ from .traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value import (
36
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValue,
37
+ )
38
+ from .traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_array_value import (
39
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueArrayValue,
40
+ )
41
+ from .traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value import (
42
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValue,
43
+ )
44
+ from .traces_create_request_resource_spans_item_scope_spans_item_scope_attributes_item_value_kvlist_value_values_item import (
45
+ TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValueValuesItem,
46
+ )
47
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item import (
48
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem,
49
+ )
50
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item import (
51
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItem,
52
+ )
53
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value import (
54
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValue,
55
+ )
56
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_array_value import (
57
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueArrayValue,
58
+ )
59
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value import (
60
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValue,
61
+ )
62
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item_attributes_item_value_kvlist_value_values_item import (
63
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValueValuesItem,
64
+ )
65
+ from .traces_create_request_resource_spans_item_scope_spans_item_spans_item_status import (
66
+ TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemStatus,
67
+ )
68
+ from .traces_create_response import TracesCreateResponse
69
+ from .traces_create_response_partial_success import TracesCreateResponsePartialSuccess
70
+
71
+ __all__ = [
72
+ "TracesCreateRequestResourceSpansItem",
73
+ "TracesCreateRequestResourceSpansItemResource",
74
+ "TracesCreateRequestResourceSpansItemResourceAttributesItem",
75
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValue",
76
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue",
77
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue",
78
+ "TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValueValuesItem",
79
+ "TracesCreateRequestResourceSpansItemScopeSpansItem",
80
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScope",
81
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItem",
82
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValue",
83
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueArrayValue",
84
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValue",
85
+ "TracesCreateRequestResourceSpansItemScopeSpansItemScopeAttributesItemValueKvlistValueValuesItem",
86
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItem",
87
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItem",
88
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValue",
89
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueArrayValue",
90
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValue",
91
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemAttributesItemValueKvlistValueValuesItem",
92
+ "TracesCreateRequestResourceSpansItemScopeSpansItemSpansItemStatus",
93
+ "TracesCreateResponse",
94
+ "TracesCreateResponsePartialSuccess",
95
+ ]
@@ -0,0 +1,36 @@
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 .traces_create_request_resource_spans_item_resource import (
10
+ TracesCreateRequestResourceSpansItemResource,
11
+ )
12
+ from .traces_create_request_resource_spans_item_scope_spans_item import (
13
+ TracesCreateRequestResourceSpansItemScopeSpansItem,
14
+ )
15
+
16
+
17
+ class TracesCreateRequestResourceSpansItem(UniversalBaseModel):
18
+ resource: typing.Optional[TracesCreateRequestResourceSpansItemResource] = None
19
+ scope_spans: typing_extensions.Annotated[
20
+ typing.List[TracesCreateRequestResourceSpansItemScopeSpansItem],
21
+ FieldMetadata(alias="scopeSpans"),
22
+ ]
23
+ schema_url: typing_extensions.Annotated[
24
+ typing.Optional[str], FieldMetadata(alias="schemaUrl")
25
+ ] = None
26
+
27
+ if IS_PYDANTIC_V2:
28
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
29
+ extra="allow", frozen=True
30
+ ) # type: ignore # Pydantic v2
31
+ else:
32
+
33
+ class Config:
34
+ frozen = True
35
+ smart_union = True
36
+ extra = pydantic.Extra.allow
@@ -0,0 +1,31 @@
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 .traces_create_request_resource_spans_item_resource_attributes_item import (
10
+ TracesCreateRequestResourceSpansItemResourceAttributesItem,
11
+ )
12
+
13
+
14
+ class TracesCreateRequestResourceSpansItemResource(UniversalBaseModel):
15
+ attributes: typing.Optional[
16
+ typing.List[TracesCreateRequestResourceSpansItemResourceAttributesItem]
17
+ ] = None
18
+ dropped_attributes_count: typing_extensions.Annotated[
19
+ typing.Optional[float], FieldMetadata(alias="droppedAttributesCount")
20
+ ] = None
21
+
22
+ if IS_PYDANTIC_V2:
23
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
24
+ extra="allow", frozen=True
25
+ ) # type: ignore # Pydantic v2
26
+ else:
27
+
28
+ class Config:
29
+ frozen = True
30
+ smart_union = True
31
+ extra = pydantic.Extra.allow
@@ -0,0 +1,25 @@
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
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value import (
8
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValue,
9
+ )
10
+
11
+
12
+ class TracesCreateRequestResourceSpansItemResourceAttributesItem(UniversalBaseModel):
13
+ key: str
14
+ value: TracesCreateRequestResourceSpansItemResourceAttributesItemValue
15
+
16
+ if IS_PYDANTIC_V2:
17
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
18
+ extra="allow", frozen=True
19
+ ) # type: ignore # Pydantic v2
20
+ else:
21
+
22
+ class Config:
23
+ frozen = True
24
+ smart_union = True
25
+ extra = pydantic.Extra.allow
@@ -0,0 +1,54 @@
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 .traces_create_request_resource_spans_item_resource_attributes_item_value_array_value import (
10
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue,
11
+ )
12
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value import (
13
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue,
14
+ )
15
+
16
+
17
+ class TracesCreateRequestResourceSpansItemResourceAttributesItemValue(
18
+ UniversalBaseModel
19
+ ):
20
+ string_value: typing_extensions.Annotated[
21
+ typing.Optional[str], FieldMetadata(alias="stringValue")
22
+ ] = None
23
+ int_value: typing_extensions.Annotated[
24
+ typing.Optional[str], FieldMetadata(alias="intValue")
25
+ ] = None
26
+ double_value: typing_extensions.Annotated[
27
+ typing.Optional[float], FieldMetadata(alias="doubleValue")
28
+ ] = None
29
+ bool_value: typing_extensions.Annotated[
30
+ typing.Optional[bool], FieldMetadata(alias="boolValue")
31
+ ] = None
32
+ array_value: typing_extensions.Annotated[
33
+ typing.Optional[
34
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue
35
+ ],
36
+ FieldMetadata(alias="arrayValue"),
37
+ ] = None
38
+ kvlist_value: typing_extensions.Annotated[
39
+ typing.Optional[
40
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue
41
+ ],
42
+ FieldMetadata(alias="kvlistValue"),
43
+ ] = None
44
+
45
+ if IS_PYDANTIC_V2:
46
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
47
+ extra="allow", frozen=True
48
+ ) # type: ignore # Pydantic v2
49
+ else:
50
+
51
+ class Config:
52
+ frozen = True
53
+ smart_union = True
54
+ extra = pydantic.Extra.allow
@@ -0,0 +1,23 @@
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 TracesCreateRequestResourceSpansItemResourceAttributesItemValueArrayValue(
10
+ UniversalBaseModel
11
+ ):
12
+ values: typing.List[typing.Optional[typing.Any]]
13
+
14
+ if IS_PYDANTIC_V2:
15
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
16
+ extra="allow", frozen=True
17
+ ) # type: ignore # Pydantic v2
18
+ else:
19
+
20
+ class Config:
21
+ frozen = True
22
+ smart_union = True
23
+ extra = pydantic.Extra.allow
@@ -0,0 +1,28 @@
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
+ from .traces_create_request_resource_spans_item_resource_attributes_item_value_kvlist_value_values_item import (
8
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValueValuesItem,
9
+ )
10
+
11
+
12
+ class TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValue(
13
+ UniversalBaseModel
14
+ ):
15
+ values: typing.List[
16
+ TracesCreateRequestResourceSpansItemResourceAttributesItemValueKvlistValueValuesItem
17
+ ]
18
+
19
+ if IS_PYDANTIC_V2:
20
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(
21
+ extra="allow", frozen=True
22
+ ) # type: ignore # Pydantic v2
23
+ else:
24
+
25
+ class Config:
26
+ frozen = True
27
+ smart_union = True
28
+ extra = pydantic.Extra.allow