mixpeek 0.20.19__py3-none-any.whl → 0.21.1__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 (228) hide show
  1. mixpeek/_version.py +3 -3
  2. mixpeek/{assets.py → bucket_objects.py} +309 -793
  3. mixpeek/buckets.py +1292 -0
  4. mixpeek/clusters.py +306 -0
  5. mixpeek/collection_cache.py +820 -0
  6. mixpeek/{taxonomyentities.py → collection_documents.py} +305 -559
  7. mixpeek/collections.py +122 -996
  8. mixpeek/features.py +45 -991
  9. mixpeek/models/__init__.py +625 -570
  10. mixpeek/models/aggregationtype.py +13 -0
  11. mixpeek/models/apikeyupdate.py +1 -1
  12. mixpeek/models/attributebasedconfig.py +21 -0
  13. mixpeek/models/automaticnaming.py +29 -0
  14. mixpeek/models/basicfeatureextractor.py +35 -0
  15. mixpeek/models/{classify_features_v1_entities_taxonomies_taxonomy_classify_postop.py → batch_delete_documents_v1_collections_collection_identifier_documents_batch_deleteop.py} +17 -15
  16. mixpeek/models/{update_collection_v1_collections_collection_putop.py → batch_update_documents_v1_collections_collection_identifier_documents_batch_putop.py} +29 -19
  17. mixpeek/models/blobdetails.py +72 -0
  18. mixpeek/models/blobmodel.py +107 -0
  19. mixpeek/models/bucketcreaterequest.py +75 -0
  20. mixpeek/models/bucketresponse.py +90 -0
  21. mixpeek/models/bucketschema_input.py +37 -0
  22. mixpeek/models/bucketschema_output.py +37 -0
  23. mixpeek/models/{featureresponse.py → bucketschemafield_input.py} +45 -18
  24. mixpeek/models/bucketschemafield_output.py +101 -0
  25. mixpeek/models/bucketschemafieldtype.py +29 -0
  26. mixpeek/models/bucketupdaterequest.py +68 -0
  27. mixpeek/models/cachestats.py +40 -0
  28. mixpeek/models/{list_collections_v1_collections_getop.py → cleanup_cache_v1_collections_cache_cleanup_postop.py} +23 -12
  29. mixpeek/models/{inputtype.py → clusteringmethod.py} +3 -5
  30. mixpeek/models/clustertype.py +9 -0
  31. mixpeek/models/collectioncacheconfig_input.py +92 -0
  32. mixpeek/models/collectioncacheconfig_output.py +92 -0
  33. mixpeek/models/collectionconfig.py +32 -0
  34. mixpeek/models/collectionmodel.py +79 -8
  35. mixpeek/models/{create_taxonomy_v1_entities_taxonomies_postop.py → create_bucket_v1_buckets_create_postop.py} +7 -7
  36. mixpeek/models/{search_assets_v1_assets_search_postop.py → create_cluster_v1_clusters_postop.py} +7 -7
  37. mixpeek/models/{create_collection_v1_collections_postop.py → create_collection_v1_collections_create_postop.py} +3 -3
  38. mixpeek/models/{ingest_video_url_v1_ingest_videos_url_postop.py → create_interaction_v1_retrievers_interactions_postop.py} +7 -7
  39. mixpeek/models/{partial_asset_update_v1_assets_asset_id_patchop.py → create_object_v1_buckets_bucket_identifier_objects_create_postop.py} +11 -9
  40. mixpeek/models/{ingest_text_v1_ingest_text_postop.py → create_retriever_v1_retrievers_retrievers_postop.py} +10 -7
  41. mixpeek/models/{ingest_image_url_v1_ingest_images_url_postop.py → create_taxonomy_v1_taxonomies_postop.py} +7 -7
  42. mixpeek/models/createblobrequest.py +80 -0
  43. mixpeek/models/createclusterrequest.py +74 -0
  44. mixpeek/models/createcollectionrequest.py +72 -3
  45. mixpeek/models/createnamespacerequest.py +14 -8
  46. mixpeek/models/createobjectrequest.py +75 -0
  47. mixpeek/models/createretrieverrequest.py +90 -0
  48. mixpeek/models/{taxonomyupdate.py → createtaxonomyrequest.py} +15 -13
  49. mixpeek/models/{delete_asset_v1_assets_asset_id_deleteop.py → delete_bucket_v1_buckets_bucket_identifier_deleteop.py} +5 -5
  50. mixpeek/models/{delete_classifications_v1_entities_taxonomies_taxonomy_classifications_classification_id_deleteop.py → delete_document_v1_collections_collection_identifier_documents_document_id_deleteop.py} +11 -11
  51. mixpeek/models/{get_taxonomy_v1_entities_taxonomies_taxonomy_getop.py → delete_interaction_v1_retrievers_interactions_interaction_id_deleteop.py} +7 -7
  52. mixpeek/models/delete_object_v1_buckets_bucket_identifier_objects_object_identifier_deleteop.py +70 -0
  53. mixpeek/models/{featureextractionembeddingrequest.py → documenthandlingconfig.py} +12 -15
  54. mixpeek/models/documentinputhandling.py +11 -0
  55. mixpeek/models/{jsontextoutputsettings.py → documentlistresponse.py} +15 -14
  56. mixpeek/models/documentoutputhandling.py +10 -0
  57. mixpeek/models/documentoutputtype.py +11 -0
  58. mixpeek/models/documentresponse.py +87 -0
  59. mixpeek/models/{nodeupdate.py → documentupdate.py} +22 -13
  60. mixpeek/models/enrichmentfield.py +25 -0
  61. mixpeek/models/errordetail.py +1 -1
  62. mixpeek/models/{update_node_v1_entities_taxonomies_nodes_node_patchop.py → execute_retriever_v1_retrievers_retrievers_retriever_id_execute_postop.py} +11 -11
  63. mixpeek/models/featureextractorconfig.py +116 -0
  64. mixpeek/models/featureextractordefinition.py +192 -0
  65. mixpeek/models/filtercondition.py +25 -25
  66. mixpeek/models/filteroperator.py +24 -0
  67. mixpeek/models/generativemodels.py +10 -0
  68. mixpeek/models/{delete_feature_v1_features_feature_id_deleteop.py → get_bucket_v1_buckets_bucket_identifier_getop.py} +5 -5
  69. mixpeek/models/{list_taxonomies_v1_entities_taxonomies_getop.py → get_cache_stats_v1_collections_cache_stats_getop.py} +16 -14
  70. mixpeek/models/get_collection_v1_collections_collection_id_getop.py +59 -0
  71. mixpeek/models/get_document_v1_collections_collection_identifier_documents_document_id_getop.py +70 -0
  72. mixpeek/models/get_feature_extractor_v1_features_extractors_feature_id_getop.py +16 -0
  73. mixpeek/models/get_interaction_v1_retrievers_interactions_interaction_id_getop.py +57 -0
  74. mixpeek/models/{delete_collection_v1_collections_collection_deleteop.py → get_object_v1_buckets_bucket_identifier_objects_object_identifier_getop.py} +16 -7
  75. mixpeek/models/get_research_v1_research_getop.py +52 -0
  76. mixpeek/models/get_retriever_stages_v1_retrievers_stages_getop.py +52 -0
  77. mixpeek/models/{delete_taxonomy_v1_entities_taxonomies_taxonomy_deleteop.py → get_retriever_v1_retrievers_retrievers_retriever_id_getop.py} +5 -7
  78. mixpeek/models/get_task_v1_tasks_task_id_getop.py +1 -1
  79. mixpeek/models/getusagerequestmodel.py +91 -0
  80. mixpeek/models/hdbscanparameters.py +26 -0
  81. mixpeek/models/interactionresponse.py +86 -0
  82. mixpeek/models/interactiontype.py +22 -0
  83. mixpeek/models/{search_features_v1_features_search_postop.py → invalidate_cache_v1_collections_cache_invalidate_postop.py} +60 -34
  84. mixpeek/models/invalidationevent.py +67 -0
  85. mixpeek/models/invalidationstrategy.py +12 -0
  86. mixpeek/models/kill_task_v1_tasks_task_id_deleteop.py +1 -1
  87. mixpeek/models/list_active_tasks_v1_tasks_getop.py +1 -1
  88. mixpeek/models/{list_assets_v1_assets_postop.py → list_buckets_v1_buckets_postop.py} +18 -18
  89. mixpeek/models/{list_features_v1_features_postop.py → list_documents_v1_collections_collection_identifier_documents_getop.py} +54 -19
  90. mixpeek/models/list_interactions_v1_retrievers_interactions_getop.py +96 -0
  91. mixpeek/models/{list_classifications_v1_entities_taxonomies_taxonomy_classifications_postop.py → list_objects_v1_buckets_bucket_identifier_objects_postop.py} +22 -29
  92. mixpeek/models/{groupbyoptionsasset.py → listbucketsrequest.py} +19 -28
  93. mixpeek/models/listbucketsresponse.py +23 -0
  94. mixpeek/models/{groupbyoptions.py → listobjectsrequest.py} +19 -28
  95. mixpeek/models/listobjectsresponse.py +25 -0
  96. mixpeek/models/listtasksresponse.py +3 -6
  97. mixpeek/models/{logicaloperator.py → logicaloperator_input.py} +42 -24
  98. mixpeek/models/logicaloperator_output.py +121 -0
  99. mixpeek/models/multivectorindex.py +25 -0
  100. mixpeek/models/namespaceresponse.py +1 -1
  101. mixpeek/models/namespaceusage.py +45 -0
  102. mixpeek/models/namingmethod.py +8 -0
  103. mixpeek/models/objectresponse.py +124 -0
  104. mixpeek/models/{db_model_paginationresponse.py → paginationresponse.py} +3 -3
  105. mixpeek/models/payloadindexconfig.py +1 -1
  106. mixpeek/models/plan.py +82 -0
  107. mixpeek/models/recomputestrategy.py +12 -0
  108. mixpeek/models/resourcetotals.py +39 -0
  109. mixpeek/models/{jsonvideooutputsettings.py → retrieverbinding.py} +19 -11
  110. mixpeek/models/{logodetectsettings.py → retrievercacheconfig.py} +20 -11
  111. mixpeek/models/retrievermodel.py +95 -0
  112. mixpeek/models/retrieverqueryrequest.py +114 -0
  113. mixpeek/models/retrieverresponse.py +24 -0
  114. mixpeek/models/searchinteraction.py +81 -0
  115. mixpeek/models/singlelineageentry.py +99 -0
  116. mixpeek/models/sortdirection.py +11 -0
  117. mixpeek/models/sortoption.py +20 -12
  118. mixpeek/models/sourceconfig_input.py +72 -0
  119. mixpeek/models/sourceconfig_output.py +75 -0
  120. mixpeek/models/sourcetype.py +11 -0
  121. mixpeek/models/stageconfig_input.py +111 -0
  122. mixpeek/models/stageconfig_output.py +114 -0
  123. mixpeek/models/stagedefinition.py +110 -0
  124. mixpeek/models/{jsonimageoutputsettings.py → stageresponse.py} +21 -11
  125. mixpeek/models/taskresponse.py +1 -1
  126. mixpeek/models/taskstatus.py +1 -0
  127. mixpeek/models/{assetfeatures.py → taxonomyapplicationconfig.py} +23 -15
  128. mixpeek/models/taxonomyconfig.py +19 -0
  129. mixpeek/models/timeseriesdatapoint.py +25 -0
  130. mixpeek/models/timeseriesusage.py +36 -0
  131. mixpeek/models/{full_asset_update_v1_assets_asset_id_putop.py → update_bucket_v1_buckets_bucket_identifier_putop.py} +9 -9
  132. mixpeek/models/{update_taxonomy_v1_entities_taxonomies_taxonomy_patchop.py → update_document_v1_collections_collection_identifier_documents_document_id_putop.py} +25 -13
  133. mixpeek/models/{full_feature_update_v1_features_feature_id_putop.py → update_object_v1_buckets_bucket_identifier_objects_object_identifier_putop.py} +20 -9
  134. mixpeek/models/updatenamespacerequest.py +1 -1
  135. mixpeek/models/updateobjectrequest.py +75 -0
  136. mixpeek/models/usageresponse.py +86 -0
  137. mixpeek/models/usagesummary.py +39 -0
  138. mixpeek/models/usagetimerange.py +16 -0
  139. mixpeek/models/usermodel_input.py +3 -0
  140. mixpeek/models/usermodel_output.py +3 -0
  141. mixpeek/models/vectorbasedconfig.py +60 -0
  142. mixpeek/models/{collectionresult.py → vectorindex.py} +20 -15
  143. mixpeek/models/vectorindexdefinition.py +43 -0
  144. mixpeek/models/vectortype.py +4 -1
  145. mixpeek/namespaces.py +26 -480
  146. mixpeek/organization_notifications.py +214 -0
  147. mixpeek/organizations.py +6 -210
  148. mixpeek/{featureextractors.py → organizations_usage.py} +31 -39
  149. mixpeek/research.py +228 -0
  150. mixpeek/retriever_interactions.py +1036 -0
  151. mixpeek/retriever_stages.py +232 -0
  152. mixpeek/{ingestassets.py → retrievers.py} +209 -271
  153. mixpeek/sdk.py +40 -23
  154. mixpeek/taxonomies.py +43 -513
  155. mixpeek/types/basemodel.py +3 -3
  156. mixpeek/utils/enums.py +67 -27
  157. {mixpeek-0.20.19.dist-info → mixpeek-0.21.1.dist-info}/METADATA +68 -50
  158. mixpeek-0.21.1.dist-info/RECORD +216 -0
  159. {mixpeek-0.20.19.dist-info → mixpeek-0.21.1.dist-info}/WHEEL +1 -1
  160. mixpeek/models/actionusage.py +0 -16
  161. mixpeek/models/assetresponse.py +0 -166
  162. mixpeek/models/assets_model_searchquery.py +0 -21
  163. mixpeek/models/assetupdate.py +0 -28
  164. mixpeek/models/assignmentconfig.py +0 -67
  165. mixpeek/models/assignmentmode.py +0 -11
  166. mixpeek/models/availablemodels.py +0 -16
  167. mixpeek/models/availablemodelsresponse.py +0 -27
  168. mixpeek/models/classificationmatch.py +0 -77
  169. mixpeek/models/classificationwithfeature.py +0 -73
  170. mixpeek/models/collectiondetailsresponse.py +0 -83
  171. mixpeek/models/dateusage.py +0 -22
  172. mixpeek/models/denseembedding.py +0 -16
  173. mixpeek/models/discoverrequest.py +0 -64
  174. mixpeek/models/embeddingconfig.py +0 -33
  175. mixpeek/models/embeddingrequest.py +0 -92
  176. mixpeek/models/embeddingresponse.py +0 -64
  177. mixpeek/models/entitysettings.py +0 -50
  178. mixpeek/models/featureoptions.py +0 -25
  179. mixpeek/models/features_model_paginationresponse.py +0 -59
  180. mixpeek/models/featureupdaterequest.py +0 -21
  181. mixpeek/models/get_asset_v1_assets_asset_id_getop.py +0 -73
  182. mixpeek/models/get_asset_with_features_v1_assets_asset_id_features_getop.py +0 -73
  183. mixpeek/models/get_collection_details_v1_collections_collection_details_getop.py +0 -59
  184. mixpeek/models/get_collection_details_v1_collections_collection_getop.py +0 -59
  185. mixpeek/models/get_feature_v1_features_feature_id_getop.py +0 -70
  186. mixpeek/models/get_taxonomy_node_v1_entities_taxonomies_nodes_node_getop.py +0 -59
  187. mixpeek/models/groupedassetdata.py +0 -18
  188. mixpeek/models/imagedescribesettings.py +0 -82
  189. mixpeek/models/imagedetectsettings.py +0 -47
  190. mixpeek/models/imagereadsettings.py +0 -71
  191. mixpeek/models/imagesettings.py +0 -92
  192. mixpeek/models/listassetsrequest.py +0 -75
  193. mixpeek/models/listassetsresponse.py +0 -22
  194. mixpeek/models/listclassificationsrequest.py +0 -69
  195. mixpeek/models/listclassificationsresponse.py +0 -31
  196. mixpeek/models/listcollectionsresponse.py +0 -22
  197. mixpeek/models/listfeaturesrequest.py +0 -77
  198. mixpeek/models/listfeaturesresponse.py +0 -22
  199. mixpeek/models/listtaxonomiesresponse.py +0 -24
  200. mixpeek/models/modality.py +0 -13
  201. mixpeek/models/modeldetails.py +0 -61
  202. mixpeek/models/nodeoptions.py +0 -16
  203. mixpeek/models/patch_namespace_v1_namespaces_namespace_patchop.py +0 -28
  204. mixpeek/models/payloadindextype.py +0 -17
  205. mixpeek/models/processimageurlinput.py +0 -87
  206. mixpeek/models/processtextinput.py +0 -82
  207. mixpeek/models/processvideourlinput.py +0 -87
  208. mixpeek/models/querysettings.py +0 -56
  209. mixpeek/models/rerankingoptions.py +0 -47
  210. mixpeek/models/search_model_searchquery.py +0 -76
  211. mixpeek/models/searchassetsrequest.py +0 -78
  212. mixpeek/models/searchrequestfeatures.py +0 -153
  213. mixpeek/models/sparseembedding.py +0 -21
  214. mixpeek/models/taxonomycreate.py +0 -20
  215. mixpeek/models/taxonomyextractionconfig.py +0 -26
  216. mixpeek/models/taxonomymodel.py +0 -27
  217. mixpeek/models/taxonomynode.py +0 -101
  218. mixpeek/models/taxonomynodecreate.py +0 -63
  219. mixpeek/models/textsettings.py +0 -67
  220. mixpeek/models/updateassetrequest.py +0 -60
  221. mixpeek/models/usage.py +0 -18
  222. mixpeek/models/vectormodel.py +0 -15
  223. mixpeek/models/videodescribesettings.py +0 -82
  224. mixpeek/models/videodetectsettings.py +0 -47
  225. mixpeek/models/videoreadsettings.py +0 -71
  226. mixpeek/models/videosettings.py +0 -115
  227. mixpeek/models/videotranscriptionsettings.py +0 -69
  228. mixpeek-0.20.19.dist-info/RECORD +0 -201
@@ -8,14 +8,14 @@ from pydantic import model_serializer
8
8
  from typing_extensions import Annotated, NotRequired, TypedDict
9
9
 
10
10
 
11
- class DeleteFeatureV1FeaturesFeatureIDDeleteRequestTypedDict(TypedDict):
12
- feature_id: str
11
+ class GetBucketV1BucketsBucketIdentifierGetRequestTypedDict(TypedDict):
12
+ bucket_identifier: str
13
13
  x_namespace: NotRequired[Nullable[str]]
14
14
  r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
15
15
 
16
16
 
17
- class DeleteFeatureV1FeaturesFeatureIDDeleteRequest(BaseModel):
18
- feature_id: Annotated[
17
+ class GetBucketV1BucketsBucketIdentifierGetRequest(BaseModel):
18
+ bucket_identifier: Annotated[
19
19
  str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
20
20
  ]
21
21
 
@@ -36,7 +36,7 @@ class DeleteFeatureV1FeaturesFeatureIDDeleteRequest(BaseModel):
36
36
 
37
37
  m = {}
38
38
 
39
- for n, f in self.model_fields.items():
39
+ for n, f in type(self).model_fields.items():
40
40
  k = f.alias or n
41
41
  val = serialized.get(k)
42
42
  serialized.pop(k, None)
@@ -5,29 +5,31 @@ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SE
5
5
  from mixpeek.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
6
6
  import pydantic
7
7
  from pydantic import model_serializer
8
- from typing import Optional
9
8
  from typing_extensions import Annotated, NotRequired, TypedDict
10
9
 
11
10
 
12
- class ListTaxonomiesV1EntitiesTaxonomiesGetRequestTypedDict(TypedDict):
13
- offset_id: NotRequired[Nullable[str]]
14
- r"""The offset id to start returning results from. Used for pagination"""
15
- page_size: NotRequired[int]
11
+ class GetCacheStatsV1CollectionsCacheStatsGetRequestTypedDict(TypedDict):
12
+ internal_id: str
13
+ redis_url: NotRequired[Nullable[str]]
14
+ prefix: NotRequired[Nullable[str]]
16
15
  x_namespace: NotRequired[Nullable[str]]
17
16
  r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
18
17
 
19
18
 
20
- class ListTaxonomiesV1EntitiesTaxonomiesGetRequest(BaseModel):
21
- offset_id: Annotated[
19
+ class GetCacheStatsV1CollectionsCacheStatsGetRequest(BaseModel):
20
+ internal_id: Annotated[
21
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
22
+ ]
23
+
24
+ redis_url: Annotated[
22
25
  OptionalNullable[str],
23
26
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
24
27
  ] = UNSET
25
- r"""The offset id to start returning results from. Used for pagination"""
26
28
 
27
- page_size: Annotated[
28
- Optional[int],
29
+ prefix: Annotated[
30
+ OptionalNullable[str],
29
31
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
30
- ] = 10
32
+ ] = UNSET
31
33
 
32
34
  x_namespace: Annotated[
33
35
  OptionalNullable[str],
@@ -38,15 +40,15 @@ class ListTaxonomiesV1EntitiesTaxonomiesGetRequest(BaseModel):
38
40
 
39
41
  @model_serializer(mode="wrap")
40
42
  def serialize_model(self, handler):
41
- optional_fields = ["offset_id", "page_size", "X-Namespace"]
42
- nullable_fields = ["offset_id", "X-Namespace"]
43
+ optional_fields = ["redis_url", "prefix", "X-Namespace"]
44
+ nullable_fields = ["redis_url", "prefix", "X-Namespace"]
43
45
  null_default_fields = []
44
46
 
45
47
  serialized = handler(self)
46
48
 
47
49
  m = {}
48
50
 
49
- for n, f in self.model_fields.items():
51
+ for n, f in type(self).model_fields.items():
50
52
  k = f.alias or n
51
53
  val = serialized.get(k)
52
54
  serialized.pop(k, None)
@@ -0,0 +1,59 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from mixpeek.utils import FieldMetadata, HeaderMetadata, PathParamMetadata
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetCollectionV1CollectionsCollectionIDGetRequestTypedDict(TypedDict):
12
+ collection_id: str
13
+ r"""The ID of the collection to retrieve"""
14
+ x_namespace: NotRequired[Nullable[str]]
15
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
16
+
17
+
18
+ class GetCollectionV1CollectionsCollectionIDGetRequest(BaseModel):
19
+ collection_id: Annotated[
20
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
21
+ ]
22
+ r"""The ID of the collection to retrieve"""
23
+
24
+ x_namespace: Annotated[
25
+ OptionalNullable[str],
26
+ pydantic.Field(alias="X-Namespace"),
27
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
28
+ ] = UNSET
29
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
30
+
31
+ @model_serializer(mode="wrap")
32
+ def serialize_model(self, handler):
33
+ optional_fields = ["X-Namespace"]
34
+ nullable_fields = ["X-Namespace"]
35
+ null_default_fields = []
36
+
37
+ serialized = handler(self)
38
+
39
+ m = {}
40
+
41
+ for n, f in type(self).model_fields.items():
42
+ k = f.alias or n
43
+ val = serialized.get(k)
44
+ serialized.pop(k, None)
45
+
46
+ optional_nullable = k in optional_fields and k in nullable_fields
47
+ is_set = (
48
+ self.__pydantic_fields_set__.intersection({n})
49
+ or k in null_default_fields
50
+ ) # pylint: disable=no-member
51
+
52
+ if val is not None and val != UNSET_SENTINEL:
53
+ m[k] = val
54
+ elif val != UNSET_SENTINEL and (
55
+ not k in optional_fields or (optional_nullable and is_set)
56
+ ):
57
+ m[k] = val
58
+
59
+ return m
@@ -0,0 +1,70 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from mixpeek.utils import FieldMetadata, HeaderMetadata, PathParamMetadata
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetDocumentV1CollectionsCollectionIdentifierDocumentsDocumentIDGetRequestTypedDict(
12
+ TypedDict
13
+ ):
14
+ collection_identifier: str
15
+ r"""The ID of the collection"""
16
+ document_id: str
17
+ r"""The ID of the document to retrieve"""
18
+ x_namespace: NotRequired[Nullable[str]]
19
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
20
+
21
+
22
+ class GetDocumentV1CollectionsCollectionIdentifierDocumentsDocumentIDGetRequest(
23
+ BaseModel
24
+ ):
25
+ collection_identifier: Annotated[
26
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
27
+ ]
28
+ r"""The ID of the collection"""
29
+
30
+ document_id: Annotated[
31
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
32
+ ]
33
+ r"""The ID of the document to retrieve"""
34
+
35
+ x_namespace: Annotated[
36
+ OptionalNullable[str],
37
+ pydantic.Field(alias="X-Namespace"),
38
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
39
+ ] = UNSET
40
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = ["X-Namespace"]
45
+ nullable_fields = ["X-Namespace"]
46
+ null_default_fields = []
47
+
48
+ serialized = handler(self)
49
+
50
+ m = {}
51
+
52
+ for n, f in type(self).model_fields.items():
53
+ k = f.alias or n
54
+ val = serialized.get(k)
55
+ serialized.pop(k, None)
56
+
57
+ optional_nullable = k in optional_fields and k in nullable_fields
58
+ is_set = (
59
+ self.__pydantic_fields_set__.intersection({n})
60
+ or k in null_default_fields
61
+ ) # pylint: disable=no-member
62
+
63
+ if val is not None and val != UNSET_SENTINEL:
64
+ m[k] = val
65
+ elif val != UNSET_SENTINEL and (
66
+ not k in optional_fields or (optional_nullable and is_set)
67
+ ):
68
+ m[k] = val
69
+
70
+ return m
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel
5
+ from mixpeek.utils import FieldMetadata, PathParamMetadata
6
+ from typing_extensions import Annotated, TypedDict
7
+
8
+
9
+ class GetFeatureExtractorV1FeaturesExtractorsFeatureIDGetRequestTypedDict(TypedDict):
10
+ feature_id: str
11
+
12
+
13
+ class GetFeatureExtractorV1FeaturesExtractorsFeatureIDGetRequest(BaseModel):
14
+ feature_id: Annotated[
15
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
16
+ ]
@@ -0,0 +1,57 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from mixpeek.utils import FieldMetadata, HeaderMetadata, PathParamMetadata
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetInteractionV1RetrieversInteractionsInteractionIDGetRequestTypedDict(TypedDict):
12
+ interaction_id: str
13
+ x_namespace: NotRequired[Nullable[str]]
14
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
15
+
16
+
17
+ class GetInteractionV1RetrieversInteractionsInteractionIDGetRequest(BaseModel):
18
+ interaction_id: Annotated[
19
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
20
+ ]
21
+
22
+ x_namespace: Annotated[
23
+ OptionalNullable[str],
24
+ pydantic.Field(alias="X-Namespace"),
25
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
26
+ ] = UNSET
27
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
28
+
29
+ @model_serializer(mode="wrap")
30
+ def serialize_model(self, handler):
31
+ optional_fields = ["X-Namespace"]
32
+ nullable_fields = ["X-Namespace"]
33
+ null_default_fields = []
34
+
35
+ serialized = handler(self)
36
+
37
+ m = {}
38
+
39
+ for n, f in type(self).model_fields.items():
40
+ k = f.alias or n
41
+ val = serialized.get(k)
42
+ serialized.pop(k, None)
43
+
44
+ optional_nullable = k in optional_fields and k in nullable_fields
45
+ is_set = (
46
+ self.__pydantic_fields_set__.intersection({n})
47
+ or k in null_default_fields
48
+ ) # pylint: disable=no-member
49
+
50
+ if val is not None and val != UNSET_SENTINEL:
51
+ m[k] = val
52
+ elif val != UNSET_SENTINEL and (
53
+ not k in optional_fields or (optional_nullable and is_set)
54
+ ):
55
+ m[k] = val
56
+
57
+ return m
@@ -8,18 +8,27 @@ from pydantic import model_serializer
8
8
  from typing_extensions import Annotated, NotRequired, TypedDict
9
9
 
10
10
 
11
- class DeleteCollectionV1CollectionsCollectionDeleteRequestTypedDict(TypedDict):
12
- collection: str
13
- r"""Either the collection name or collection ID"""
11
+ class GetObjectV1BucketsBucketIdentifierObjectsObjectIdentifierGetRequestTypedDict(
12
+ TypedDict
13
+ ):
14
+ bucket_identifier: str
15
+ r"""Identifier of the bucket"""
16
+ object_identifier: str
17
+ r"""Identifier of the object"""
14
18
  x_namespace: NotRequired[Nullable[str]]
15
19
  r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
16
20
 
17
21
 
18
- class DeleteCollectionV1CollectionsCollectionDeleteRequest(BaseModel):
19
- collection: Annotated[
22
+ class GetObjectV1BucketsBucketIdentifierObjectsObjectIdentifierGetRequest(BaseModel):
23
+ bucket_identifier: Annotated[
20
24
  str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
21
25
  ]
22
- r"""Either the collection name or collection ID"""
26
+ r"""Identifier of the bucket"""
27
+
28
+ object_identifier: Annotated[
29
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
30
+ ]
31
+ r"""Identifier of the object"""
23
32
 
24
33
  x_namespace: Annotated[
25
34
  OptionalNullable[str],
@@ -38,7 +47,7 @@ class DeleteCollectionV1CollectionsCollectionDeleteRequest(BaseModel):
38
47
 
39
48
  m = {}
40
49
 
41
- for n, f in self.model_fields.items():
50
+ for n, f in type(self).model_fields.items():
42
51
  k = f.alias or n
43
52
  val = serialized.get(k)
44
53
  serialized.pop(k, None)
@@ -0,0 +1,52 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from mixpeek.utils import FieldMetadata, HeaderMetadata
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetResearchV1ResearchGetRequestTypedDict(TypedDict):
12
+ x_namespace: NotRequired[Nullable[str]]
13
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
14
+
15
+
16
+ class GetResearchV1ResearchGetRequest(BaseModel):
17
+ x_namespace: Annotated[
18
+ OptionalNullable[str],
19
+ pydantic.Field(alias="X-Namespace"),
20
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
21
+ ] = UNSET
22
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
23
+
24
+ @model_serializer(mode="wrap")
25
+ def serialize_model(self, handler):
26
+ optional_fields = ["X-Namespace"]
27
+ nullable_fields = ["X-Namespace"]
28
+ null_default_fields = []
29
+
30
+ serialized = handler(self)
31
+
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k)
37
+ serialized.pop(k, None)
38
+
39
+ optional_nullable = k in optional_fields and k in nullable_fields
40
+ is_set = (
41
+ self.__pydantic_fields_set__.intersection({n})
42
+ or k in null_default_fields
43
+ ) # pylint: disable=no-member
44
+
45
+ if val is not None and val != UNSET_SENTINEL:
46
+ m[k] = val
47
+ elif val != UNSET_SENTINEL and (
48
+ not k in optional_fields or (optional_nullable and is_set)
49
+ ):
50
+ m[k] = val
51
+
52
+ return m
@@ -0,0 +1,52 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from mixpeek.utils import FieldMetadata, HeaderMetadata
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class GetRetrieverStagesV1RetrieversStagesGetRequestTypedDict(TypedDict):
12
+ x_namespace: NotRequired[Nullable[str]]
13
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
14
+
15
+
16
+ class GetRetrieverStagesV1RetrieversStagesGetRequest(BaseModel):
17
+ x_namespace: Annotated[
18
+ OptionalNullable[str],
19
+ pydantic.Field(alias="X-Namespace"),
20
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
21
+ ] = UNSET
22
+ r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
23
+
24
+ @model_serializer(mode="wrap")
25
+ def serialize_model(self, handler):
26
+ optional_fields = ["X-Namespace"]
27
+ nullable_fields = ["X-Namespace"]
28
+ null_default_fields = []
29
+
30
+ serialized = handler(self)
31
+
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k)
37
+ serialized.pop(k, None)
38
+
39
+ optional_nullable = k in optional_fields and k in nullable_fields
40
+ is_set = (
41
+ self.__pydantic_fields_set__.intersection({n})
42
+ or k in null_default_fields
43
+ ) # pylint: disable=no-member
44
+
45
+ if val is not None and val != UNSET_SENTINEL:
46
+ m[k] = val
47
+ elif val != UNSET_SENTINEL and (
48
+ not k in optional_fields or (optional_nullable and is_set)
49
+ ):
50
+ m[k] = val
51
+
52
+ return m
@@ -8,18 +8,16 @@ from pydantic import model_serializer
8
8
  from typing_extensions import Annotated, NotRequired, TypedDict
9
9
 
10
10
 
11
- class DeleteTaxonomyV1EntitiesTaxonomiesTaxonomyDeleteRequestTypedDict(TypedDict):
12
- taxonomy: str
13
- r"""The ID or name of the taxonomy to delete"""
11
+ class GetRetrieverV1RetrieversRetrieversRetrieverIDGetRequestTypedDict(TypedDict):
12
+ retriever_id: str
14
13
  x_namespace: NotRequired[Nullable[str]]
15
14
  r"""Optional namespace for data isolation. This can be a namespace name or namespace ID. Example: 'netflix_prod' or 'ns_1234567890'. To create a namespace, use the /namespaces endpoint."""
16
15
 
17
16
 
18
- class DeleteTaxonomyV1EntitiesTaxonomiesTaxonomyDeleteRequest(BaseModel):
19
- taxonomy: Annotated[
17
+ class GetRetrieverV1RetrieversRetrieversRetrieverIDGetRequest(BaseModel):
18
+ retriever_id: Annotated[
20
19
  str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
21
20
  ]
22
- r"""The ID or name of the taxonomy to delete"""
23
21
 
24
22
  x_namespace: Annotated[
25
23
  OptionalNullable[str],
@@ -38,7 +36,7 @@ class DeleteTaxonomyV1EntitiesTaxonomiesTaxonomyDeleteRequest(BaseModel):
38
36
 
39
37
  m = {}
40
38
 
41
- for n, f in self.model_fields.items():
39
+ for n, f in type(self).model_fields.items():
42
40
  k = f.alias or n
43
41
  val = serialized.get(k)
44
42
  serialized.pop(k, None)
@@ -36,7 +36,7 @@ class GetTaskV1TasksTaskIDGetRequest(BaseModel):
36
36
 
37
37
  m = {}
38
38
 
39
- for n, f in self.model_fields.items():
39
+ for n, f in type(self).model_fields.items():
40
40
  k = f.alias or n
41
41
  val = serialized.get(k)
42
42
  serialized.pop(k, None)
@@ -0,0 +1,91 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .aggregationtype import AggregationType
5
+ from .usagetimerange import UsageTimeRange
6
+ from datetime import datetime
7
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ from pydantic import model_serializer
9
+ from typing import List, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class GetUsageRequestModelTypedDict(TypedDict):
14
+ r"""Request model for customizing usage data retrieval"""
15
+
16
+ time_range: NotRequired[UsageTimeRange]
17
+ r"""Time ranges for usage data"""
18
+ custom_start_date: NotRequired[Nullable[datetime]]
19
+ r"""Custom start date if time_range is 'custom'"""
20
+ custom_end_date: NotRequired[Nullable[datetime]]
21
+ r"""Custom end date if time_range is 'custom'"""
22
+ include_namespace_breakdown: NotRequired[bool]
23
+ r"""Whether to include usage breakdown by namespace"""
24
+ history_aggregation: NotRequired[Nullable[AggregationType]]
25
+ r"""Aggregation level for historical data"""
26
+ namespaces: NotRequired[Nullable[List[str]]]
27
+ r"""Filter to specific namespaces (all if not specified)"""
28
+
29
+
30
+ class GetUsageRequestModel(BaseModel):
31
+ r"""Request model for customizing usage data retrieval"""
32
+
33
+ time_range: Optional[UsageTimeRange] = None
34
+ r"""Time ranges for usage data"""
35
+
36
+ custom_start_date: OptionalNullable[datetime] = UNSET
37
+ r"""Custom start date if time_range is 'custom'"""
38
+
39
+ custom_end_date: OptionalNullable[datetime] = UNSET
40
+ r"""Custom end date if time_range is 'custom'"""
41
+
42
+ include_namespace_breakdown: Optional[bool] = True
43
+ r"""Whether to include usage breakdown by namespace"""
44
+
45
+ history_aggregation: OptionalNullable[AggregationType] = UNSET
46
+ r"""Aggregation level for historical data"""
47
+
48
+ namespaces: OptionalNullable[List[str]] = UNSET
49
+ r"""Filter to specific namespaces (all if not specified)"""
50
+
51
+ @model_serializer(mode="wrap")
52
+ def serialize_model(self, handler):
53
+ optional_fields = [
54
+ "time_range",
55
+ "custom_start_date",
56
+ "custom_end_date",
57
+ "include_namespace_breakdown",
58
+ "history_aggregation",
59
+ "namespaces",
60
+ ]
61
+ nullable_fields = [
62
+ "custom_start_date",
63
+ "custom_end_date",
64
+ "history_aggregation",
65
+ "namespaces",
66
+ ]
67
+ null_default_fields = []
68
+
69
+ serialized = handler(self)
70
+
71
+ m = {}
72
+
73
+ for n, f in type(self).model_fields.items():
74
+ k = f.alias or n
75
+ val = serialized.get(k)
76
+ serialized.pop(k, None)
77
+
78
+ optional_nullable = k in optional_fields and k in nullable_fields
79
+ is_set = (
80
+ self.__pydantic_fields_set__.intersection({n})
81
+ or k in null_default_fields
82
+ ) # pylint: disable=no-member
83
+
84
+ if val is not None and val != UNSET_SENTINEL:
85
+ m[k] = val
86
+ elif val != UNSET_SENTINEL and (
87
+ not k in optional_fields or (optional_nullable and is_set)
88
+ ):
89
+ m[k] = val
90
+
91
+ return m
@@ -0,0 +1,26 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel
5
+ from typing import Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class HDBSCANParametersTypedDict(TypedDict):
10
+ min_cluster_size: NotRequired[int]
11
+ r"""Minimum number of samples in each cluster"""
12
+ min_samples: NotRequired[int]
13
+ r"""Controls how conservative clustering is"""
14
+ umap_neighbors: NotRequired[int]
15
+ r"""Controls local versus global structure"""
16
+
17
+
18
+ class HDBSCANParameters(BaseModel):
19
+ min_cluster_size: Optional[int] = 3
20
+ r"""Minimum number of samples in each cluster"""
21
+
22
+ min_samples: Optional[int] = 3
23
+ r"""Controls how conservative clustering is"""
24
+
25
+ umap_neighbors: Optional[int] = 15
26
+ r"""Controls local versus global structure"""