mixpeek 0.20.20__py3-none-any.whl → 0.21.6__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 → bucketobjects.py} +309 -793
  3. mixpeek/buckets.py +1292 -0
  4. mixpeek/clusters.py +306 -0
  5. mixpeek/collectioncache.py +820 -0
  6. mixpeek/{taxonomyentities.py → collectiondocuments.py} +305 -559
  7. mixpeek/collections.py +120 -994
  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/organizationnotifications.py +214 -0
  147. mixpeek/organizations.py +6 -210
  148. mixpeek/{featureextractors.py → organizationsusage.py} +31 -39
  149. mixpeek/research.py +228 -0
  150. mixpeek/retrieverinteractions.py +1036 -0
  151. mixpeek/{ingestassets.py → retrievers.py} +209 -271
  152. mixpeek/retrieverstages.py +232 -0
  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.20.dist-info → mixpeek-0.21.6.dist-info}/METADATA +68 -50
  158. mixpeek-0.21.6.dist-info/RECORD +216 -0
  159. {mixpeek-0.20.20.dist-info → mixpeek-0.21.6.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.20.dist-info/RECORD +0 -201
@@ -0,0 +1,13 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+
6
+
7
+ class AggregationType(str, Enum):
8
+ r"""Types of data aggregation"""
9
+
10
+ HOURLY = "hourly"
11
+ DAILY = "daily"
12
+ WEEKLY = "weekly"
13
+ MONTHLY = "monthly"
@@ -28,7 +28,7 @@ class APIKeyUpdate(BaseModel):
28
28
 
29
29
  m = {}
30
30
 
31
- for n, f in self.model_fields.items():
31
+ for n, f in type(self).model_fields.items():
32
32
  k = f.alias or n
33
33
  val = serialized.get(k)
34
34
  serialized.pop(k, None)
@@ -0,0 +1,21 @@
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 List, Optional
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class AttributeBasedConfigTypedDict(TypedDict):
10
+ attributes: List[str]
11
+ r"""List of attributes to use for attribute-based clustering"""
12
+ hierarchical_grouping: NotRequired[bool]
13
+ r"""Enable multi-level grouping similar to pandas multi-level groupby"""
14
+
15
+
16
+ class AttributeBasedConfig(BaseModel):
17
+ attributes: List[str]
18
+ r"""List of attributes to use for attribute-based clustering"""
19
+
20
+ hierarchical_grouping: Optional[bool] = False
21
+ r"""Enable multi-level grouping similar to pandas multi-level groupby"""
@@ -0,0 +1,29 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .generativemodels import GenerativeModels
5
+ from .namingmethod import NamingMethod
6
+ from mixpeek.types import BaseModel
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class AutomaticNamingTypedDict(TypedDict):
12
+ enabled: NotRequired[bool]
13
+ r"""Automatically assign cluster labels to documents"""
14
+ generative_model: NotRequired[GenerativeModels]
15
+ method: NotRequired[NamingMethod]
16
+ num_nearest_points: NotRequired[int]
17
+ r"""Features used to generate name"""
18
+
19
+
20
+ class AutomaticNaming(BaseModel):
21
+ enabled: Optional[bool] = True
22
+ r"""Automatically assign cluster labels to documents"""
23
+
24
+ generative_model: Optional[GenerativeModels] = None
25
+
26
+ method: Optional[NamingMethod] = None
27
+
28
+ num_nearest_points: Optional[int] = 3
29
+ r"""Features used to generate name"""
@@ -0,0 +1,35 @@
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 List
6
+ from typing_extensions import TypedDict
7
+
8
+
9
+ class BasicFeatureExtractorTypedDict(TypedDict):
10
+ r"""Basic feature extractor model, used for creating namespaces."""
11
+
12
+ feature_extractor_name: str
13
+ r"""Name of the feature extractor"""
14
+ description: str
15
+ r"""Description of the feature extractor"""
16
+ supported_input_types: List[str]
17
+ r"""Supported input types"""
18
+ version: str
19
+ r"""Version of the feature extractor"""
20
+
21
+
22
+ class BasicFeatureExtractor(BaseModel):
23
+ r"""Basic feature extractor model, used for creating namespaces."""
24
+
25
+ feature_extractor_name: str
26
+ r"""Name of the feature extractor"""
27
+
28
+ description: str
29
+ r"""Description of the feature extractor"""
30
+
31
+ supported_input_types: List[str]
32
+ r"""Supported input types"""
33
+
34
+ version: str
35
+ r"""Version of the feature extractor"""
@@ -1,7 +1,6 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .discoverrequest import DiscoverRequest, DiscoverRequestTypedDict
5
4
  from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
5
  from mixpeek.utils import (
7
6
  FieldMetadata,
@@ -11,29 +10,27 @@ from mixpeek.utils import (
11
10
  )
12
11
  import pydantic
13
12
  from pydantic import model_serializer
13
+ from typing import List, Optional
14
14
  from typing_extensions import Annotated, NotRequired, TypedDict
15
15
 
16
16
 
17
- class ClassifyFeaturesV1EntitiesTaxonomiesTaxonomyClassifyPostRequestTypedDict(
17
+ class BatchDeleteDocumentsV1CollectionsCollectionIdentifierDocumentsBatchDeleteRequestTypedDict(
18
18
  TypedDict
19
19
  ):
20
- taxonomy: str
21
- r"""The name or id of the taxonomy to use for discovery"""
22
- discover_request: DiscoverRequestTypedDict
20
+ collection_identifier: str
21
+ r"""The ID of the collection"""
23
22
  x_namespace: NotRequired[Nullable[str]]
24
23
  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."""
24
+ request_body: NotRequired[List[str]]
25
25
 
26
26
 
27
- class ClassifyFeaturesV1EntitiesTaxonomiesTaxonomyClassifyPostRequest(BaseModel):
28
- taxonomy: Annotated[
27
+ class BatchDeleteDocumentsV1CollectionsCollectionIdentifierDocumentsBatchDeleteRequest(
28
+ BaseModel
29
+ ):
30
+ collection_identifier: Annotated[
29
31
  str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
30
32
  ]
31
- r"""The name or id of the taxonomy to use for discovery"""
32
-
33
- discover_request: Annotated[
34
- DiscoverRequest,
35
- FieldMetadata(request=RequestMetadata(media_type="application/json")),
36
- ]
33
+ r"""The ID of the collection"""
37
34
 
38
35
  x_namespace: Annotated[
39
36
  OptionalNullable[str],
@@ -42,9 +39,14 @@ class ClassifyFeaturesV1EntitiesTaxonomiesTaxonomyClassifyPostRequest(BaseModel)
42
39
  ] = UNSET
43
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."""
44
41
 
42
+ request_body: Annotated[
43
+ Optional[List[str]],
44
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
45
+ ] = None
46
+
45
47
  @model_serializer(mode="wrap")
46
48
  def serialize_model(self, handler):
47
- optional_fields = ["X-Namespace"]
49
+ optional_fields = ["X-Namespace", "RequestBody"]
48
50
  nullable_fields = ["X-Namespace"]
49
51
  null_default_fields = []
50
52
 
@@ -52,7 +54,7 @@ class ClassifyFeaturesV1EntitiesTaxonomiesTaxonomyClassifyPostRequest(BaseModel)
52
54
 
53
55
  m = {}
54
56
 
55
- for n, f in self.model_fields.items():
57
+ for n, f in type(self).model_fields.items():
56
58
  k = f.alias or n
57
59
  val = serialized.get(k)
58
60
  serialized.pop(k, None)
@@ -1,10 +1,7 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from .createcollectionrequest import (
5
- CreateCollectionRequest,
6
- CreateCollectionRequestTypedDict,
7
- )
4
+ from .documentupdate import DocumentUpdate, DocumentUpdateTypedDict
8
5
  from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
9
6
  from mixpeek.utils import (
10
7
  FieldMetadata,
@@ -14,27 +11,35 @@ from mixpeek.utils import (
14
11
  )
15
12
  import pydantic
16
13
  from pydantic import model_serializer
17
- from typing_extensions import Annotated, NotRequired, TypedDict
14
+ from typing import List, Optional, Union
15
+ from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
16
+
17
+
18
+ RequestBodyTypedDict = TypeAliasType(
19
+ "RequestBodyTypedDict", Union[DocumentUpdateTypedDict, str]
20
+ )
21
+
22
+
23
+ RequestBody = TypeAliasType("RequestBody", Union[DocumentUpdate, str])
18
24
 
19
25
 
20
- class UpdateCollectionV1CollectionsCollectionPutRequestTypedDict(TypedDict):
21
- collection: str
22
- r"""Either the collection name or collection ID"""
23
- create_collection_request: CreateCollectionRequestTypedDict
26
+ class BatchUpdateDocumentsV1CollectionsCollectionIdentifierDocumentsBatchPutRequestTypedDict(
27
+ TypedDict
28
+ ):
29
+ collection_identifier: str
30
+ r"""The ID of the collection"""
24
31
  x_namespace: NotRequired[Nullable[str]]
25
32
  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."""
33
+ request_body: NotRequired[List[List[RequestBodyTypedDict]]]
26
34
 
27
35
 
28
- class UpdateCollectionV1CollectionsCollectionPutRequest(BaseModel):
29
- collection: Annotated[
36
+ class BatchUpdateDocumentsV1CollectionsCollectionIdentifierDocumentsBatchPutRequest(
37
+ BaseModel
38
+ ):
39
+ collection_identifier: Annotated[
30
40
  str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
31
41
  ]
32
- r"""Either the collection name or collection ID"""
33
-
34
- create_collection_request: Annotated[
35
- CreateCollectionRequest,
36
- FieldMetadata(request=RequestMetadata(media_type="application/json")),
37
- ]
42
+ r"""The ID of the collection"""
38
43
 
39
44
  x_namespace: Annotated[
40
45
  OptionalNullable[str],
@@ -43,9 +48,14 @@ class UpdateCollectionV1CollectionsCollectionPutRequest(BaseModel):
43
48
  ] = UNSET
44
49
  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."""
45
50
 
51
+ request_body: Annotated[
52
+ Optional[List[List[RequestBody]]],
53
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
54
+ ] = None
55
+
46
56
  @model_serializer(mode="wrap")
47
57
  def serialize_model(self, handler):
48
- optional_fields = ["X-Namespace"]
58
+ optional_fields = ["X-Namespace", "RequestBody"]
49
59
  nullable_fields = ["X-Namespace"]
50
60
  null_default_fields = []
51
61
 
@@ -53,7 +63,7 @@ class UpdateCollectionV1CollectionsCollectionPutRequest(BaseModel):
53
63
 
54
64
  m = {}
55
65
 
56
- for n, f in self.model_fields.items():
66
+ for n, f in type(self).model_fields.items():
57
67
  k = f.alias or n
58
68
  val = serialized.get(k)
59
69
  serialized.pop(k, None)
@@ -0,0 +1,72 @@
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 pydantic import model_serializer
6
+ from typing_extensions import NotRequired, TypedDict
7
+
8
+
9
+ class BlobDetailsTypedDict(TypedDict):
10
+ r"""File details for a bucket object, these are automatically generated by the system"""
11
+
12
+ filename: NotRequired[Nullable[str]]
13
+ size_bytes: NotRequired[Nullable[int]]
14
+ mime_type: NotRequired[Nullable[str]]
15
+ hash: NotRequired[Nullable[str]]
16
+ s3_object_key: NotRequired[Nullable[str]]
17
+
18
+
19
+ class BlobDetails(BaseModel):
20
+ r"""File details for a bucket object, these are automatically generated by the system"""
21
+
22
+ filename: OptionalNullable[str] = UNSET
23
+
24
+ size_bytes: OptionalNullable[int] = UNSET
25
+
26
+ mime_type: OptionalNullable[str] = UNSET
27
+
28
+ hash: OptionalNullable[str] = UNSET
29
+
30
+ s3_object_key: OptionalNullable[str] = UNSET
31
+
32
+ @model_serializer(mode="wrap")
33
+ def serialize_model(self, handler):
34
+ optional_fields = [
35
+ "filename",
36
+ "size_bytes",
37
+ "mime_type",
38
+ "hash",
39
+ "s3_object_key",
40
+ ]
41
+ nullable_fields = [
42
+ "filename",
43
+ "size_bytes",
44
+ "mime_type",
45
+ "hash",
46
+ "s3_object_key",
47
+ ]
48
+ null_default_fields = []
49
+
50
+ serialized = handler(self)
51
+
52
+ m = {}
53
+
54
+ for n, f in type(self).model_fields.items():
55
+ k = f.alias or n
56
+ val = serialized.get(k)
57
+ serialized.pop(k, None)
58
+
59
+ optional_nullable = k in optional_fields and k in nullable_fields
60
+ is_set = (
61
+ self.__pydantic_fields_set__.intersection({n})
62
+ or k in null_default_fields
63
+ ) # pylint: disable=no-member
64
+
65
+ if val is not None and val != UNSET_SENTINEL:
66
+ m[k] = val
67
+ elif val != UNSET_SENTINEL and (
68
+ not k in optional_fields or (optional_nullable and is_set)
69
+ ):
70
+ m[k] = val
71
+
72
+ return m
@@ -0,0 +1,107 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .blobdetails import BlobDetails, BlobDetailsTypedDict
5
+ from .bucketschemafieldtype import BucketSchemaFieldType
6
+ from .taskstatus import TaskStatus
7
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ from pydantic import model_serializer
9
+ from typing import Any, Optional
10
+ from typing_extensions import NotRequired, TypedDict
11
+
12
+
13
+ class BlobModelMetadataTypedDict(TypedDict):
14
+ pass
15
+
16
+
17
+ class BlobModelMetadata(BaseModel):
18
+ pass
19
+
20
+
21
+ class BlobModelTypedDict(TypedDict):
22
+ r"""Model for a blob within a bucket object"""
23
+
24
+ property: str
25
+ r"""Property name of the blob"""
26
+ type: BucketSchemaFieldType
27
+ r"""Enum for field types in bucket schemas"""
28
+ data: Any
29
+ r"""Data for the blob"""
30
+ blob_id: NotRequired[str]
31
+ r"""Unique identifier for the blob"""
32
+ key_prefix: NotRequired[Nullable[str]]
33
+ r"""Storage key/path of the blob, this will be used to retrieve the blob from the storage. It is similar to a file path. If not provided, it will be placed in the root of the bucket."""
34
+ metadata: NotRequired[Nullable[BlobModelMetadataTypedDict]]
35
+ r"""Metadata for the blob, this will only be applied to the documents that use this blob"""
36
+ details: NotRequired[BlobDetailsTypedDict]
37
+ r"""File details for a bucket object, these are automatically generated by the system"""
38
+ status: NotRequired[TaskStatus]
39
+ error: NotRequired[Nullable[str]]
40
+ r"""Error message if the blob failed to be ingested"""
41
+
42
+
43
+ class BlobModel(BaseModel):
44
+ r"""Model for a blob within a bucket object"""
45
+
46
+ property: str
47
+ r"""Property name of the blob"""
48
+
49
+ type: BucketSchemaFieldType
50
+ r"""Enum for field types in bucket schemas"""
51
+
52
+ data: Any
53
+ r"""Data for the blob"""
54
+
55
+ blob_id: Optional[str] = None
56
+ r"""Unique identifier for the blob"""
57
+
58
+ key_prefix: OptionalNullable[str] = UNSET
59
+ r"""Storage key/path of the blob, this will be used to retrieve the blob from the storage. It is similar to a file path. If not provided, it will be placed in the root of the bucket."""
60
+
61
+ metadata: OptionalNullable[BlobModelMetadata] = UNSET
62
+ r"""Metadata for the blob, this will only be applied to the documents that use this blob"""
63
+
64
+ details: Optional[BlobDetails] = None
65
+ r"""File details for a bucket object, these are automatically generated by the system"""
66
+
67
+ status: Optional[TaskStatus] = None
68
+
69
+ error: OptionalNullable[str] = UNSET
70
+ r"""Error message if the blob failed to be ingested"""
71
+
72
+ @model_serializer(mode="wrap")
73
+ def serialize_model(self, handler):
74
+ optional_fields = [
75
+ "blob_id",
76
+ "key_prefix",
77
+ "metadata",
78
+ "details",
79
+ "status",
80
+ "error",
81
+ ]
82
+ nullable_fields = ["key_prefix", "metadata", "error"]
83
+ null_default_fields = []
84
+
85
+ serialized = handler(self)
86
+
87
+ m = {}
88
+
89
+ for n, f in type(self).model_fields.items():
90
+ k = f.alias or n
91
+ val = serialized.get(k)
92
+ serialized.pop(k, None)
93
+
94
+ optional_nullable = k in optional_fields and k in nullable_fields
95
+ is_set = (
96
+ self.__pydantic_fields_set__.intersection({n})
97
+ or k in null_default_fields
98
+ ) # pylint: disable=no-member
99
+
100
+ if val is not None and val != UNSET_SENTINEL:
101
+ m[k] = val
102
+ elif val != UNSET_SENTINEL and (
103
+ not k in optional_fields or (optional_nullable and is_set)
104
+ ):
105
+ m[k] = val
106
+
107
+ return m
@@ -0,0 +1,75 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .bucketschema_input import BucketSchemaInput, BucketSchemaInputTypedDict
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class BucketCreateRequestMetadataTypedDict(TypedDict):
12
+ r"""Additional metadata for the bucket"""
13
+
14
+
15
+ class BucketCreateRequestMetadata(BaseModel):
16
+ r"""Additional metadata for the bucket"""
17
+
18
+
19
+ class BucketCreateRequestTypedDict(TypedDict):
20
+ r"""Request model for creating a new bucket"""
21
+
22
+ bucket_name: str
23
+ r"""Human-readable name for the bucket"""
24
+ bucket_schema: BucketSchemaInputTypedDict
25
+ r"""Schema definition for bucket objects"""
26
+ description: NotRequired[Nullable[str]]
27
+ r"""Description of the bucket"""
28
+ metadata: NotRequired[BucketCreateRequestMetadataTypedDict]
29
+ r"""Additional metadata for the bucket"""
30
+
31
+
32
+ class BucketCreateRequest(BaseModel):
33
+ r"""Request model for creating a new bucket"""
34
+
35
+ bucket_name: str
36
+ r"""Human-readable name for the bucket"""
37
+
38
+ bucket_schema: BucketSchemaInput
39
+ r"""Schema definition for bucket objects"""
40
+
41
+ description: OptionalNullable[str] = UNSET
42
+ r"""Description of the bucket"""
43
+
44
+ metadata: Optional[BucketCreateRequestMetadata] = None
45
+ r"""Additional metadata for the bucket"""
46
+
47
+ @model_serializer(mode="wrap")
48
+ def serialize_model(self, handler):
49
+ optional_fields = ["description", "metadata"]
50
+ nullable_fields = ["description"]
51
+ null_default_fields = []
52
+
53
+ serialized = handler(self)
54
+
55
+ m = {}
56
+
57
+ for n, f in type(self).model_fields.items():
58
+ k = f.alias or n
59
+ val = serialized.get(k)
60
+ serialized.pop(k, None)
61
+
62
+ optional_nullable = k in optional_fields and k in nullable_fields
63
+ is_set = (
64
+ self.__pydantic_fields_set__.intersection({n})
65
+ or k in null_default_fields
66
+ ) # pylint: disable=no-member
67
+
68
+ if val is not None and val != UNSET_SENTINEL:
69
+ m[k] = val
70
+ elif val != UNSET_SENTINEL and (
71
+ not k in optional_fields or (optional_nullable and is_set)
72
+ ):
73
+ m[k] = val
74
+
75
+ return m
@@ -0,0 +1,90 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .bucketschema_output import BucketSchemaOutput, BucketSchemaOutputTypedDict
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class BucketResponseMetadataTypedDict(TypedDict):
12
+ r"""Additional metadata for the bucket"""
13
+
14
+
15
+ class BucketResponseMetadata(BaseModel):
16
+ r"""Additional metadata for the bucket"""
17
+
18
+
19
+ class BucketResponseTypedDict(TypedDict):
20
+ r"""Response model for bucket operations"""
21
+
22
+ bucket_name: str
23
+ r"""Human-readable name for the bucket"""
24
+ bucket_schema: BucketSchemaOutputTypedDict
25
+ r"""Schema definition for bucket objects"""
26
+ object_count: int
27
+ r"""Number of objects in the bucket"""
28
+ total_size_bytes: int
29
+ r"""Total size of all objects in the bucket in bytes"""
30
+ bucket_id: NotRequired[str]
31
+ r"""Unique identifier for the bucket"""
32
+ description: NotRequired[Nullable[str]]
33
+ r"""Description of the bucket"""
34
+ metadata: NotRequired[BucketResponseMetadataTypedDict]
35
+ r"""Additional metadata for the bucket"""
36
+
37
+
38
+ class BucketResponse(BaseModel):
39
+ r"""Response model for bucket operations"""
40
+
41
+ bucket_name: str
42
+ r"""Human-readable name for the bucket"""
43
+
44
+ bucket_schema: BucketSchemaOutput
45
+ r"""Schema definition for bucket objects"""
46
+
47
+ object_count: int
48
+ r"""Number of objects in the bucket"""
49
+
50
+ total_size_bytes: int
51
+ r"""Total size of all objects in the bucket in bytes"""
52
+
53
+ bucket_id: Optional[str] = None
54
+ r"""Unique identifier for the bucket"""
55
+
56
+ description: OptionalNullable[str] = UNSET
57
+ r"""Description of the bucket"""
58
+
59
+ metadata: Optional[BucketResponseMetadata] = None
60
+ r"""Additional metadata for the bucket"""
61
+
62
+ @model_serializer(mode="wrap")
63
+ def serialize_model(self, handler):
64
+ optional_fields = ["bucket_id", "description", "metadata"]
65
+ nullable_fields = ["description"]
66
+ null_default_fields = []
67
+
68
+ serialized = handler(self)
69
+
70
+ m = {}
71
+
72
+ for n, f in type(self).model_fields.items():
73
+ k = f.alias or n
74
+ val = serialized.get(k)
75
+ serialized.pop(k, None)
76
+
77
+ optional_nullable = k in optional_fields and k in nullable_fields
78
+ is_set = (
79
+ self.__pydantic_fields_set__.intersection({n})
80
+ or k in null_default_fields
81
+ ) # pylint: disable=no-member
82
+
83
+ if val is not None and val != UNSET_SENTINEL:
84
+ m[k] = val
85
+ elif val != UNSET_SENTINEL and (
86
+ not k in optional_fields or (optional_nullable and is_set)
87
+ ):
88
+ m[k] = val
89
+
90
+ return m
@@ -0,0 +1,37 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .bucketschemafield_input import (
5
+ BucketSchemaFieldInput,
6
+ BucketSchemaFieldInputTypedDict,
7
+ )
8
+ from mixpeek.types import BaseModel
9
+ import pydantic
10
+ from pydantic import ConfigDict
11
+ from typing import Any, Dict
12
+ from typing_extensions import TypedDict
13
+
14
+
15
+ class BucketSchemaInputTypedDict(TypedDict):
16
+ r"""Schema definition for bucket objects"""
17
+
18
+ properties: Dict[str, BucketSchemaFieldInputTypedDict]
19
+
20
+
21
+ class BucketSchemaInput(BaseModel):
22
+ r"""Schema definition for bucket objects"""
23
+
24
+ model_config = ConfigDict(
25
+ populate_by_name=True, arbitrary_types_allowed=True, extra="allow"
26
+ )
27
+ __pydantic_extra__: Dict[str, Any] = pydantic.Field(init=False)
28
+
29
+ properties: Dict[str, BucketSchemaFieldInput]
30
+
31
+ @property
32
+ def additional_properties(self):
33
+ return self.__pydantic_extra__
34
+
35
+ @additional_properties.setter
36
+ def additional_properties(self, value):
37
+ self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]