mixpeek 0.11.2__py3-none-any.whl → 0.13__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 (189) hide show
  1. mixpeek/__init__.py +9 -1
  2. mixpeek/_hooks/__init__.py +5 -0
  3. mixpeek/_hooks/registration.py +13 -0
  4. mixpeek/_hooks/sdkhooks.py +76 -0
  5. mixpeek/_hooks/types.py +94 -0
  6. mixpeek/_version.py +12 -0
  7. mixpeek/assets.py +1561 -0
  8. mixpeek/basesdk.py +350 -0
  9. mixpeek/collections.py +1029 -0
  10. mixpeek/featureextractors.py +205 -0
  11. mixpeek/features.py +1181 -0
  12. mixpeek/health.py +167 -0
  13. mixpeek/httpclient.py +84 -0
  14. mixpeek/ingest.py +831 -0
  15. mixpeek/interactions.py +221 -0
  16. mixpeek/models/__init__.py +751 -0
  17. mixpeek/models/actionusage.py +16 -0
  18. mixpeek/models/apierror.py +22 -0
  19. mixpeek/models/apikey.py +25 -0
  20. mixpeek/models/apikeyupdate.py +49 -0
  21. mixpeek/models/assetfeatures.py +55 -0
  22. mixpeek/models/assetresponse.py +166 -0
  23. mixpeek/models/assets_model_searchquery.py +21 -0
  24. mixpeek/models/assetupdate.py +28 -0
  25. mixpeek/models/availableindexesresponse.py +23 -0
  26. mixpeek/models/availablemodels.py +12 -0
  27. mixpeek/models/boolindexparams.py +18 -0
  28. mixpeek/models/collectionmodel.py +70 -0
  29. mixpeek/models/collectionresult.py +73 -0
  30. mixpeek/models/create_api_key_organizations_users_user_email_api_keys_postop.py +23 -0
  31. mixpeek/models/create_collection_collections_postop.py +62 -0
  32. mixpeek/models/create_interaction_features_search_interactions_postop.py +59 -0
  33. mixpeek/models/createcollectionrequest.py +59 -0
  34. mixpeek/models/createnamespacerequest.py +62 -0
  35. mixpeek/models/datetimeindexparams.py +18 -0
  36. mixpeek/models/dateusage.py +22 -0
  37. mixpeek/models/db_model_paginationresponse.py +59 -0
  38. mixpeek/models/db_model_taskresponse.py +20 -0
  39. mixpeek/models/delete_api_key_organizations_users_user_email_api_keys_key_name_deleteop.py +23 -0
  40. mixpeek/models/delete_asset_assets_asset_id_deleteop.py +57 -0
  41. mixpeek/models/delete_collection_collections_collection_deleteop.py +59 -0
  42. mixpeek/models/delete_feature_features_feature_id_deleteop.py +57 -0
  43. mixpeek/models/delete_interaction_features_search_interactions_interaction_id_deleteop.py +59 -0
  44. mixpeek/models/delete_namespace_namespaces_namespace_deleteop.py +18 -0
  45. mixpeek/models/delete_user_organizations_users_user_email_deleteop.py +16 -0
  46. mixpeek/models/denseembedding.py +16 -0
  47. mixpeek/models/embeddingrequest.py +59 -0
  48. mixpeek/models/embeddingresponse.py +64 -0
  49. mixpeek/models/errormessage.py +13 -0
  50. mixpeek/models/errorresponse.py +21 -0
  51. mixpeek/models/facedetectsettings.py +52 -0
  52. mixpeek/models/featureextractionembeddingrequest.py +54 -0
  53. mixpeek/models/featureresponse.py +74 -0
  54. mixpeek/models/features_model_paginationresponse.py +59 -0
  55. mixpeek/models/featureupdaterequest.py +21 -0
  56. mixpeek/models/filtercondition.py +74 -0
  57. mixpeek/models/floatindexparams.py +18 -0
  58. mixpeek/models/full_asset_update_assets_asset_id_putop.py +69 -0
  59. mixpeek/models/full_feature_update_features_feature_id_putop.py +69 -0
  60. mixpeek/models/geoindexparams.py +18 -0
  61. mixpeek/models/get_asset_assets_asset_id_getop.py +73 -0
  62. mixpeek/models/get_asset_with_features_assets_asset_id_features_getop.py +73 -0
  63. mixpeek/models/get_collection_collections_collection_getop.py +59 -0
  64. mixpeek/models/get_feature_features_feature_id_getop.py +70 -0
  65. mixpeek/models/get_interaction_features_search_interactions_interaction_id_getop.py +59 -0
  66. mixpeek/models/get_namespace_namespaces_namespace_getop.py +18 -0
  67. mixpeek/models/get_task_tasks_task_id_getop.py +57 -0
  68. mixpeek/models/get_user_organizations_users_user_email_getop.py +16 -0
  69. mixpeek/models/groupbyoptions.py +71 -0
  70. mixpeek/models/groupbyoptionsasset.py +71 -0
  71. mixpeek/models/groupedassetdata.py +18 -0
  72. mixpeek/models/healthcheckresponse.py +13 -0
  73. mixpeek/models/httpvalidationerror.py +21 -0
  74. mixpeek/models/imagedescribesettings.py +82 -0
  75. mixpeek/models/imagedetectsettings.py +53 -0
  76. mixpeek/models/imagereadsettings.py +71 -0
  77. mixpeek/models/imagesettings.py +79 -0
  78. mixpeek/models/ingest_image_url_ingest_images_url_postop.py +59 -0
  79. mixpeek/models/ingest_text_ingest_text_postop.py +59 -0
  80. mixpeek/models/ingest_video_url_ingest_videos_url_postop.py +59 -0
  81. mixpeek/models/inputtype.py +11 -0
  82. mixpeek/models/integerindexparams.py +24 -0
  83. mixpeek/models/interactionresponse.py +87 -0
  84. mixpeek/models/interactiontype.py +11 -0
  85. mixpeek/models/jsonimageoutputsettings.py +55 -0
  86. mixpeek/models/jsontextoutputsettings.py +55 -0
  87. mixpeek/models/jsonvideooutputsettings.py +55 -0
  88. mixpeek/models/keywordindexparams.py +21 -0
  89. mixpeek/models/kill_task_tasks_task_id_deleteop.py +57 -0
  90. mixpeek/models/list_assets_assets_postop.py +77 -0
  91. mixpeek/models/list_collections_collections_getop.py +65 -0
  92. mixpeek/models/list_features_features_postop.py +79 -0
  93. mixpeek/models/list_interactions_features_search_interactions_getop.py +96 -0
  94. mixpeek/models/listassetsrequest.py +75 -0
  95. mixpeek/models/listassetsresponse.py +22 -0
  96. mixpeek/models/listcollectionsresponse.py +22 -0
  97. mixpeek/models/listfeaturesrequest.py +77 -0
  98. mixpeek/models/listfeaturesresponse.py +22 -0
  99. mixpeek/models/logicaloperator_input.py +88 -0
  100. mixpeek/models/logicaloperator_output.py +103 -0
  101. mixpeek/models/logodetectsettings.py +52 -0
  102. mixpeek/models/modality.py +13 -0
  103. mixpeek/models/modeldetails.py +57 -0
  104. mixpeek/models/namespaceresponse.py +54 -0
  105. mixpeek/models/organizationmodel.py +45 -0
  106. mixpeek/models/partial_asset_update_assets_asset_id_patchop.py +69 -0
  107. mixpeek/models/payloadindexconfig.py +94 -0
  108. mixpeek/models/payloadindextype.py +17 -0
  109. mixpeek/models/payloadschematype.py +15 -0
  110. mixpeek/models/percolaterequest.py +57 -0
  111. mixpeek/models/permission.py +10 -0
  112. mixpeek/models/processimageurlinput.py +99 -0
  113. mixpeek/models/processtextinput.py +94 -0
  114. mixpeek/models/processvideourlinput.py +99 -0
  115. mixpeek/models/querysettings.py +56 -0
  116. mixpeek/models/rerankingoptions.py +47 -0
  117. mixpeek/models/search_assets_assets_search_postop.py +59 -0
  118. mixpeek/models/search_features_features_search_postop.py +96 -0
  119. mixpeek/models/search_model_searchquery_input.py +76 -0
  120. mixpeek/models/searchassetsrequest.py +78 -0
  121. mixpeek/models/searchinteraction.py +82 -0
  122. mixpeek/models/searchquery_output.py +79 -0
  123. mixpeek/models/searchrequestfeatures_input.py +151 -0
  124. mixpeek/models/searchrequestfeatures_output.py +151 -0
  125. mixpeek/models/sortoption.py +28 -0
  126. mixpeek/models/sparseembedding.py +21 -0
  127. mixpeek/models/tasks_model_taskresponse.py +24 -0
  128. mixpeek/models/taskstatus.py +16 -0
  129. mixpeek/models/textindexparams.py +31 -0
  130. mixpeek/models/textsettings.py +61 -0
  131. mixpeek/models/tokenizertype.py +11 -0
  132. mixpeek/models/update_api_key_organizations_users_user_email_api_keys_key_name_patchop.py +30 -0
  133. mixpeek/models/update_collection_collections_collection_putop.py +74 -0
  134. mixpeek/models/update_namespace_namespaces_namespace_putop.py +28 -0
  135. mixpeek/models/updateassetrequest.py +60 -0
  136. mixpeek/models/updatenamespacerequest.py +26 -0
  137. mixpeek/models/usage.py +18 -0
  138. mixpeek/models/usermodel_input.py +36 -0
  139. mixpeek/models/usermodel_output.py +36 -0
  140. mixpeek/models/uuidindexparams.py +21 -0
  141. mixpeek/models/validationerror.py +26 -0
  142. mixpeek/models/vectormodel.py +11 -0
  143. mixpeek/models/vectortype.py +9 -0
  144. mixpeek/models/videodescribesettings.py +82 -0
  145. mixpeek/models/videodetectsettings.py +53 -0
  146. mixpeek/models/videoreadsettings.py +71 -0
  147. mixpeek/models/videosettings.py +101 -0
  148. mixpeek/models/videotranscriptionsettings.py +69 -0
  149. mixpeek/namespaces.py +1143 -0
  150. mixpeek/organizations.py +1508 -0
  151. mixpeek/py.typed +1 -0
  152. mixpeek/sdk.py +135 -0
  153. mixpeek/sdkconfiguration.py +45 -0
  154. mixpeek/searchinteractions.py +647 -0
  155. mixpeek/tasks.py +387 -0
  156. mixpeek/types/__init__.py +21 -0
  157. mixpeek/types/basemodel.py +39 -0
  158. mixpeek/utils/__init__.py +97 -0
  159. mixpeek/utils/annotations.py +55 -0
  160. mixpeek/utils/enums.py +34 -0
  161. mixpeek/utils/eventstreaming.py +238 -0
  162. mixpeek/utils/forms.py +202 -0
  163. mixpeek/utils/headers.py +136 -0
  164. mixpeek/utils/logger.py +27 -0
  165. mixpeek/utils/metadata.py +118 -0
  166. mixpeek/utils/queryparams.py +205 -0
  167. mixpeek/utils/requestbodies.py +66 -0
  168. mixpeek/utils/retries.py +217 -0
  169. mixpeek/utils/security.py +174 -0
  170. mixpeek/utils/serializers.py +215 -0
  171. mixpeek/utils/url.py +155 -0
  172. mixpeek/utils/values.py +134 -0
  173. mixpeek-0.13.dist-info/METADATA +439 -0
  174. mixpeek-0.13.dist-info/RECORD +176 -0
  175. {mixpeek-0.11.2.dist-info → mixpeek-0.13.dist-info}/WHEEL +1 -2
  176. py.typed +1 -0
  177. mixpeek/client.py +0 -27
  178. mixpeek/endpoints/__init__.py +0 -0
  179. mixpeek/endpoints/collections.py +0 -86
  180. mixpeek/endpoints/embed.py +0 -66
  181. mixpeek/endpoints/index.py +0 -51
  182. mixpeek/endpoints/register.py +0 -34
  183. mixpeek/endpoints/search.py +0 -44
  184. mixpeek/endpoints/tasks.py +0 -26
  185. mixpeek/endpoints/tools.py +0 -138
  186. mixpeek/exceptions.py +0 -13
  187. mixpeek-0.11.2.dist-info/METADATA +0 -375
  188. mixpeek-0.11.2.dist-info/RECORD +0 -15
  189. mixpeek-0.11.2.dist-info/top_level.txt +0 -1
@@ -0,0 +1,77 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .logicaloperator_input import LogicalOperatorInput, LogicalOperatorInputTypedDict
5
+ from .sortoption import SortOption, SortOptionTypedDict
6
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import Any, List, Optional
9
+ from typing_extensions import NotRequired, TypedDict
10
+
11
+
12
+ class ListFeaturesRequestTypedDict(TypedDict):
13
+ collections: List[str]
14
+ r"""Collection identifiers - can be either collection IDs or collection names"""
15
+ filters: NotRequired[Nullable[LogicalOperatorInputTypedDict]]
16
+ r"""Complex nested query filters"""
17
+ sort: NotRequired[Nullable[SortOptionTypedDict]]
18
+ r"""
19
+ List of fields to sort by, with direction (asc or desc).
20
+ NOTE: fields will require a specialty index to use this, consult with the team.
21
+
22
+ """
23
+ select: NotRequired[Nullable[List[Any]]]
24
+ r"""List of fields to return in results, supports dot notation. Everything else is excluded."""
25
+ return_urls: NotRequired[bool]
26
+ r"""When true, generates presigned URLs for assets"""
27
+
28
+
29
+ class ListFeaturesRequest(BaseModel):
30
+ collections: List[str]
31
+ r"""Collection identifiers - can be either collection IDs or collection names"""
32
+
33
+ filters: OptionalNullable[LogicalOperatorInput] = UNSET
34
+ r"""Complex nested query filters"""
35
+
36
+ sort: OptionalNullable[SortOption] = UNSET
37
+ r"""
38
+ List of fields to sort by, with direction (asc or desc).
39
+ NOTE: fields will require a specialty index to use this, consult with the team.
40
+
41
+ """
42
+
43
+ select: OptionalNullable[List[Any]] = UNSET
44
+ r"""List of fields to return in results, supports dot notation. Everything else is excluded."""
45
+
46
+ return_urls: Optional[bool] = False
47
+ r"""When true, generates presigned URLs for assets"""
48
+
49
+ @model_serializer(mode="wrap")
50
+ def serialize_model(self, handler):
51
+ optional_fields = ["filters", "sort", "select", "return_urls"]
52
+ nullable_fields = ["filters", "sort", "select"]
53
+ null_default_fields = []
54
+
55
+ serialized = handler(self)
56
+
57
+ m = {}
58
+
59
+ for n, f in self.model_fields.items():
60
+ k = f.alias or n
61
+ val = serialized.get(k)
62
+ serialized.pop(k, None)
63
+
64
+ optional_nullable = k in optional_fields and k in nullable_fields
65
+ is_set = (
66
+ self.__pydantic_fields_set__.intersection({n})
67
+ or k in null_default_fields
68
+ ) # pylint: disable=no-member
69
+
70
+ if val is not None and val != UNSET_SENTINEL:
71
+ m[k] = val
72
+ elif val != UNSET_SENTINEL and (
73
+ not k in optional_fields or (optional_nullable and is_set)
74
+ ):
75
+ m[k] = val
76
+
77
+ return m
@@ -0,0 +1,22 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .featureresponse import FeatureResponse, FeatureResponseTypedDict
5
+ from .features_model_paginationresponse import (
6
+ FeaturesModelPaginationResponse,
7
+ FeaturesModelPaginationResponseTypedDict,
8
+ )
9
+ from mixpeek.types import BaseModel
10
+ from typing import List
11
+ from typing_extensions import TypedDict
12
+
13
+
14
+ class ListFeaturesResponseTypedDict(TypedDict):
15
+ results: List[FeatureResponseTypedDict]
16
+ pagination: FeaturesModelPaginationResponseTypedDict
17
+
18
+
19
+ class ListFeaturesResponse(BaseModel):
20
+ results: List[FeatureResponse]
21
+
22
+ pagination: FeaturesModelPaginationResponse
@@ -0,0 +1,88 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .filtercondition import FilterCondition, FilterConditionTypedDict
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Union
9
+ from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
10
+
11
+
12
+ class LogicalOperatorInputTypedDict(TypedDict):
13
+ case_sensitive: NotRequired[Nullable[bool]]
14
+ r"""Whether to perform case-sensitive matching"""
15
+ and_: NotRequired[Nullable[List[AndTypedDict]]]
16
+ r"""Logical AND operation"""
17
+ or_: NotRequired[Nullable[List[OrTypedDict]]]
18
+ r"""Logical OR operation"""
19
+ nor: NotRequired[Nullable[List[NorTypedDict]]]
20
+ r"""Logical NOR operation"""
21
+
22
+
23
+ class LogicalOperatorInput(BaseModel):
24
+ case_sensitive: OptionalNullable[bool] = UNSET
25
+ r"""Whether to perform case-sensitive matching"""
26
+
27
+ and_: Annotated[OptionalNullable[List[And]], pydantic.Field(alias="AND")] = UNSET
28
+ r"""Logical AND operation"""
29
+
30
+ or_: Annotated[OptionalNullable[List[Or]], pydantic.Field(alias="OR")] = UNSET
31
+ r"""Logical OR operation"""
32
+
33
+ nor: Annotated[OptionalNullable[List[Nor]], pydantic.Field(alias="NOR")] = UNSET
34
+ r"""Logical NOR operation"""
35
+
36
+ @model_serializer(mode="wrap")
37
+ def serialize_model(self, handler):
38
+ optional_fields = ["case_sensitive", "AND", "OR", "NOR"]
39
+ nullable_fields = ["case_sensitive", "AND", "OR", "NOR"]
40
+ null_default_fields = []
41
+
42
+ serialized = handler(self)
43
+
44
+ m = {}
45
+
46
+ for n, f in self.model_fields.items():
47
+ k = f.alias or n
48
+ val = serialized.get(k)
49
+ serialized.pop(k, None)
50
+
51
+ optional_nullable = k in optional_fields and k in nullable_fields
52
+ is_set = (
53
+ self.__pydantic_fields_set__.intersection({n})
54
+ or k in null_default_fields
55
+ ) # pylint: disable=no-member
56
+
57
+ if val is not None and val != UNSET_SENTINEL:
58
+ m[k] = val
59
+ elif val != UNSET_SENTINEL and (
60
+ not k in optional_fields or (optional_nullable and is_set)
61
+ ):
62
+ m[k] = val
63
+
64
+ return m
65
+
66
+
67
+ AndTypedDict = TypeAliasType(
68
+ "AndTypedDict", Union[FilterConditionTypedDict, LogicalOperatorInputTypedDict]
69
+ )
70
+
71
+
72
+ And = TypeAliasType("And", Union[FilterCondition, LogicalOperatorInput])
73
+
74
+
75
+ OrTypedDict = TypeAliasType(
76
+ "OrTypedDict", Union[FilterConditionTypedDict, LogicalOperatorInputTypedDict]
77
+ )
78
+
79
+
80
+ Or = TypeAliasType("Or", Union[FilterCondition, LogicalOperatorInput])
81
+
82
+
83
+ NorTypedDict = TypeAliasType(
84
+ "NorTypedDict", Union[FilterConditionTypedDict, LogicalOperatorInputTypedDict]
85
+ )
86
+
87
+
88
+ Nor = TypeAliasType("Nor", Union[FilterCondition, LogicalOperatorInput])
@@ -0,0 +1,103 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .filtercondition import FilterCondition, FilterConditionTypedDict
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ import pydantic
7
+ from pydantic import model_serializer
8
+ from typing import List, Union
9
+ from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
10
+
11
+
12
+ class LogicalOperatorOutputTypedDict(TypedDict):
13
+ case_sensitive: NotRequired[Nullable[bool]]
14
+ r"""Whether to perform case-sensitive matching"""
15
+ and_: NotRequired[Nullable[List[LogicalOperatorOutputANDTypedDict]]]
16
+ r"""Logical AND operation"""
17
+ or_: NotRequired[Nullable[List[LogicalOperatorOutputORTypedDict]]]
18
+ r"""Logical OR operation"""
19
+ nor: NotRequired[Nullable[List[LogicalOperatorOutputNORTypedDict]]]
20
+ r"""Logical NOR operation"""
21
+
22
+
23
+ class LogicalOperatorOutput(BaseModel):
24
+ case_sensitive: OptionalNullable[bool] = UNSET
25
+ r"""Whether to perform case-sensitive matching"""
26
+
27
+ and_: Annotated[
28
+ OptionalNullable[List[LogicalOperatorOutputAND]], pydantic.Field(alias="AND")
29
+ ] = UNSET
30
+ r"""Logical AND operation"""
31
+
32
+ or_: Annotated[
33
+ OptionalNullable[List[LogicalOperatorOutputOR]], pydantic.Field(alias="OR")
34
+ ] = UNSET
35
+ r"""Logical OR operation"""
36
+
37
+ nor: Annotated[
38
+ OptionalNullable[List[LogicalOperatorOutputNOR]], pydantic.Field(alias="NOR")
39
+ ] = UNSET
40
+ r"""Logical NOR operation"""
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = ["case_sensitive", "AND", "OR", "NOR"]
45
+ nullable_fields = ["case_sensitive", "AND", "OR", "NOR"]
46
+ null_default_fields = []
47
+
48
+ serialized = handler(self)
49
+
50
+ m = {}
51
+
52
+ for n, f in 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
71
+
72
+
73
+ LogicalOperatorOutputANDTypedDict = TypeAliasType(
74
+ "LogicalOperatorOutputANDTypedDict",
75
+ Union[FilterConditionTypedDict, LogicalOperatorOutputTypedDict],
76
+ )
77
+
78
+
79
+ LogicalOperatorOutputAND = TypeAliasType(
80
+ "LogicalOperatorOutputAND", Union[FilterCondition, LogicalOperatorOutput]
81
+ )
82
+
83
+
84
+ LogicalOperatorOutputORTypedDict = TypeAliasType(
85
+ "LogicalOperatorOutputORTypedDict",
86
+ Union[FilterConditionTypedDict, LogicalOperatorOutputTypedDict],
87
+ )
88
+
89
+
90
+ LogicalOperatorOutputOR = TypeAliasType(
91
+ "LogicalOperatorOutputOR", Union[FilterCondition, LogicalOperatorOutput]
92
+ )
93
+
94
+
95
+ LogicalOperatorOutputNORTypedDict = TypeAliasType(
96
+ "LogicalOperatorOutputNORTypedDict",
97
+ Union[FilterConditionTypedDict, LogicalOperatorOutputTypedDict],
98
+ )
99
+
100
+
101
+ LogicalOperatorOutputNOR = TypeAliasType(
102
+ "LogicalOperatorOutputNOR", Union[FilterCondition, LogicalOperatorOutput]
103
+ )
@@ -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 pydantic import model_serializer
6
+ from typing import Optional
7
+ from typing_extensions import NotRequired, TypedDict
8
+
9
+
10
+ class LogoDetectSettingsTypedDict(TypedDict):
11
+ enabled: NotRequired[bool]
12
+ r"""Enable logo detection"""
13
+ confidence_threshold: NotRequired[Nullable[float]]
14
+ r"""Minimum confidence threshold for detected logos"""
15
+
16
+
17
+ class LogoDetectSettings(BaseModel):
18
+ enabled: Optional[bool] = True
19
+ r"""Enable logo detection"""
20
+
21
+ confidence_threshold: OptionalNullable[float] = UNSET
22
+ r"""Minimum confidence threshold for detected logos"""
23
+
24
+ @model_serializer(mode="wrap")
25
+ def serialize_model(self, handler):
26
+ optional_fields = ["enabled", "confidence_threshold"]
27
+ nullable_fields = ["confidence_threshold"]
28
+ null_default_fields = []
29
+
30
+ serialized = handler(self)
31
+
32
+ m = {}
33
+
34
+ for n, f in 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,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 Modality(str, Enum):
8
+ VIDEO = "video"
9
+ AUDIO = "audio"
10
+ TEXT = "text"
11
+ IMAGE = "image"
12
+ KEYWORD = "keyword"
13
+ MULTIMODAL = "multimodal"
@@ -0,0 +1,57 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .modality import Modality
5
+ from .vectortype import VectorType
6
+ from mixpeek.types import BaseModel, Nullable, UNSET_SENTINEL
7
+ from pydantic import model_serializer
8
+ from typing import List
9
+ from typing_extensions import TypedDict
10
+
11
+
12
+ class ModelDetailsTypedDict(TypedDict):
13
+ r"""Details about a model in the registry"""
14
+
15
+ supported_modalities: List[Modality]
16
+ vector_type: VectorType
17
+ size: Nullable[int]
18
+
19
+
20
+ class ModelDetails(BaseModel):
21
+ r"""Details about a model in the registry"""
22
+
23
+ supported_modalities: List[Modality]
24
+
25
+ vector_type: VectorType
26
+
27
+ size: Nullable[int]
28
+
29
+ @model_serializer(mode="wrap")
30
+ def serialize_model(self, handler):
31
+ optional_fields = []
32
+ nullable_fields = ["size"]
33
+ null_default_fields = []
34
+
35
+ serialized = handler(self)
36
+
37
+ m = {}
38
+
39
+ for n, f in 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
@@ -0,0 +1,54 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mixpeek.types import BaseModel, Nullable, UNSET_SENTINEL
5
+ from pydantic import model_serializer
6
+ from typing import Any, List
7
+ from typing_extensions import TypedDict
8
+
9
+
10
+ class NamespaceResponseTypedDict(TypedDict):
11
+ namespace_id: str
12
+ namespace_name: str
13
+ vector_indexes: List[str]
14
+ payload_indexes: Nullable[List[Any]]
15
+
16
+
17
+ class NamespaceResponse(BaseModel):
18
+ namespace_id: str
19
+
20
+ namespace_name: str
21
+
22
+ vector_indexes: List[str]
23
+
24
+ payload_indexes: Nullable[List[Any]]
25
+
26
+ @model_serializer(mode="wrap")
27
+ def serialize_model(self, handler):
28
+ optional_fields = []
29
+ nullable_fields = ["payload_indexes"]
30
+ null_default_fields = []
31
+
32
+ serialized = handler(self)
33
+
34
+ m = {}
35
+
36
+ for n, f in self.model_fields.items():
37
+ k = f.alias or n
38
+ val = serialized.get(k)
39
+ serialized.pop(k, None)
40
+
41
+ optional_nullable = k in optional_fields and k in nullable_fields
42
+ is_set = (
43
+ self.__pydantic_fields_set__.intersection({n})
44
+ or k in null_default_fields
45
+ ) # pylint: disable=no-member
46
+
47
+ if val is not None and val != UNSET_SENTINEL:
48
+ m[k] = val
49
+ elif val != UNSET_SENTINEL and (
50
+ not k in optional_fields or (optional_nullable and is_set)
51
+ ):
52
+ m[k] = val
53
+
54
+ return m
@@ -0,0 +1,45 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .usermodel_output import UserModelOutput, UserModelOutputTypedDict
5
+ from datetime import datetime
6
+ from mixpeek.types import BaseModel
7
+ from typing import List, Optional
8
+ from typing_extensions import NotRequired, TypedDict
9
+
10
+
11
+ class OrganizationModelMetadataTypedDict(TypedDict):
12
+ pass
13
+
14
+
15
+ class OrganizationModelMetadata(BaseModel):
16
+ pass
17
+
18
+
19
+ class OrganizationModelTypedDict(TypedDict):
20
+ organization_name: str
21
+ organization_id: NotRequired[str]
22
+ internal_id: NotRequired[str]
23
+ created_at: NotRequired[datetime]
24
+ account_type: NotRequired[str]
25
+ credit_count: NotRequired[int]
26
+ metadata: NotRequired[OrganizationModelMetadataTypedDict]
27
+ users: NotRequired[List[UserModelOutputTypedDict]]
28
+
29
+
30
+ class OrganizationModel(BaseModel):
31
+ organization_name: str
32
+
33
+ organization_id: Optional[str] = None
34
+
35
+ internal_id: Optional[str] = None
36
+
37
+ created_at: Optional[datetime] = None
38
+
39
+ account_type: Optional[str] = "free"
40
+
41
+ credit_count: Optional[int] = 1000
42
+
43
+ metadata: Optional[OrganizationModelMetadata] = None
44
+
45
+ users: Optional[List[UserModelOutput]] = None
@@ -0,0 +1,69 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .updateassetrequest import UpdateAssetRequest, UpdateAssetRequestTypedDict
5
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
6
+ from mixpeek.utils import (
7
+ FieldMetadata,
8
+ HeaderMetadata,
9
+ PathParamMetadata,
10
+ RequestMetadata,
11
+ )
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class PartialAssetUpdateAssetsAssetIDPatchRequestTypedDict(TypedDict):
18
+ asset_id: str
19
+ update_asset_request: UpdateAssetRequestTypedDict
20
+ x_namespace: NotRequired[Nullable[str]]
21
+ 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."""
22
+
23
+
24
+ class PartialAssetUpdateAssetsAssetIDPatchRequest(BaseModel):
25
+ asset_id: Annotated[
26
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
27
+ ]
28
+
29
+ update_asset_request: Annotated[
30
+ UpdateAssetRequest,
31
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
32
+ ]
33
+
34
+ x_namespace: Annotated[
35
+ OptionalNullable[str],
36
+ pydantic.Field(alias="X-Namespace"),
37
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
38
+ ] = UNSET
39
+ 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."""
40
+
41
+ @model_serializer(mode="wrap")
42
+ def serialize_model(self, handler):
43
+ optional_fields = ["X-Namespace"]
44
+ nullable_fields = ["X-Namespace"]
45
+ null_default_fields = []
46
+
47
+ serialized = handler(self)
48
+
49
+ m = {}
50
+
51
+ for n, f in self.model_fields.items():
52
+ k = f.alias or n
53
+ val = serialized.get(k)
54
+ serialized.pop(k, None)
55
+
56
+ optional_nullable = k in optional_fields and k in nullable_fields
57
+ is_set = (
58
+ self.__pydantic_fields_set__.intersection({n})
59
+ or k in null_default_fields
60
+ ) # pylint: disable=no-member
61
+
62
+ if val is not None and val != UNSET_SENTINEL:
63
+ m[k] = val
64
+ elif val != UNSET_SENTINEL and (
65
+ not k in optional_fields or (optional_nullable and is_set)
66
+ ):
67
+ m[k] = val
68
+
69
+ return m
@@ -0,0 +1,94 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .boolindexparams import BoolIndexParams, BoolIndexParamsTypedDict
5
+ from .datetimeindexparams import DatetimeIndexParams, DatetimeIndexParamsTypedDict
6
+ from .floatindexparams import FloatIndexParams, FloatIndexParamsTypedDict
7
+ from .geoindexparams import GeoIndexParams, GeoIndexParamsTypedDict
8
+ from .integerindexparams import IntegerIndexParams, IntegerIndexParamsTypedDict
9
+ from .keywordindexparams import KeywordIndexParams, KeywordIndexParamsTypedDict
10
+ from .payloadschematype import PayloadSchemaType
11
+ from .textindexparams import TextIndexParams, TextIndexParamsTypedDict
12
+ from .uuidindexparams import UUIDIndexParams, UUIDIndexParamsTypedDict
13
+ from mixpeek.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
14
+ from pydantic import model_serializer
15
+ from typing import Union
16
+ from typing_extensions import NotRequired, TypeAliasType, TypedDict
17
+
18
+
19
+ FieldSchemaTypedDict = TypeAliasType(
20
+ "FieldSchemaTypedDict",
21
+ Union[
22
+ FloatIndexParamsTypedDict,
23
+ GeoIndexParamsTypedDict,
24
+ DatetimeIndexParamsTypedDict,
25
+ BoolIndexParamsTypedDict,
26
+ KeywordIndexParamsTypedDict,
27
+ UUIDIndexParamsTypedDict,
28
+ IntegerIndexParamsTypedDict,
29
+ TextIndexParamsTypedDict,
30
+ ],
31
+ )
32
+
33
+
34
+ FieldSchema = TypeAliasType(
35
+ "FieldSchema",
36
+ Union[
37
+ FloatIndexParams,
38
+ GeoIndexParams,
39
+ DatetimeIndexParams,
40
+ BoolIndexParams,
41
+ KeywordIndexParams,
42
+ UUIDIndexParams,
43
+ IntegerIndexParams,
44
+ TextIndexParams,
45
+ ],
46
+ )
47
+
48
+
49
+ class PayloadIndexConfigTypedDict(TypedDict):
50
+ r"""Configuration for a payload index"""
51
+
52
+ field_name: str
53
+ type: PayloadSchemaType
54
+ field_schema: NotRequired[Nullable[FieldSchemaTypedDict]]
55
+
56
+
57
+ class PayloadIndexConfig(BaseModel):
58
+ r"""Configuration for a payload index"""
59
+
60
+ field_name: str
61
+
62
+ type: PayloadSchemaType
63
+
64
+ field_schema: OptionalNullable[FieldSchema] = UNSET
65
+
66
+ @model_serializer(mode="wrap")
67
+ def serialize_model(self, handler):
68
+ optional_fields = ["field_schema"]
69
+ nullable_fields = ["field_schema"]
70
+ null_default_fields = []
71
+
72
+ serialized = handler(self)
73
+
74
+ m = {}
75
+
76
+ for n, f in self.model_fields.items():
77
+ k = f.alias or n
78
+ val = serialized.get(k)
79
+ serialized.pop(k, None)
80
+
81
+ optional_nullable = k in optional_fields and k in nullable_fields
82
+ is_set = (
83
+ self.__pydantic_fields_set__.intersection({n})
84
+ or k in null_default_fields
85
+ ) # pylint: disable=no-member
86
+
87
+ if val is not None and val != UNSET_SENTINEL:
88
+ m[k] = val
89
+ elif val != UNSET_SENTINEL and (
90
+ not k in optional_fields or (optional_nullable and is_set)
91
+ ):
92
+ m[k] = val
93
+
94
+ return m