client: regenerate from hanzo-inc/cloud@9b7f663b28 (8.5.505)

Co-authored-by: Hanzo Dev <[email protected]>
This commit is contained in:
2026-10-01 23:08:56 +00:00
co-authored by Hanzo Dev
parent 3c485caf35
commit c23f20cbaf
8 changed files with 412 additions and 7 deletions
+1
View File
@@ -1142,6 +1142,7 @@ pkg/hanzoai/cloud/models/iam_delete_result.py
pkg/hanzoai/cloud/models/iam_delete_session_out.py
pkg/hanzoai/cloud/models/iam_face_id.py
pkg/hanzoai/cloud/models/iam_filter.py
pkg/hanzoai/cloud/models/iam_identifier_body.py
pkg/hanzoai/cloud/models/iam_input.py
pkg/hanzoai/cloud/models/iam_invitation.py
pkg/hanzoai/cloud/models/iam_invitations_delete_output.py
+2 -2
View File
@@ -1,4 +1,4 @@
ref=b376f5505b3acdeebe8a3299f3748104546aa818
sha256=8ced1d060b57230e5c1bb1af4f8c651f38679b0926d9422a2743a56f3f3c9bd0
ref=9b7f663b2855f765c0abe220d624e207e4d9e290
sha256=fbc4f175c9409d8f65fd82a3f254fa2ca161622d5b147a0dd8985e10a0667f45
repo=hanzo-inc/cloud
path=openapi.yaml
+2
View File
@@ -1164,6 +1164,7 @@ __all__ = [
"IamDeleteSessionOut",
"IamFaceId",
"IamFilter",
"IamIdentifierBody",
"IamInput",
"IamInvitation",
"IamInvitationsDeleteOutput",
@@ -4193,6 +4194,7 @@ from hanzoai.cloud.models.iam_delete_result import IamDeleteResult as IamDeleteR
from hanzoai.cloud.models.iam_delete_session_out import IamDeleteSessionOut as IamDeleteSessionOut
from hanzoai.cloud.models.iam_face_id import IamFaceId as IamFaceId
from hanzoai.cloud.models.iam_filter import IamFilter as IamFilter
from hanzoai.cloud.models.iam_identifier_body import IamIdentifierBody as IamIdentifierBody
from hanzoai.cloud.models.iam_input import IamInput as IamInput
from hanzoai.cloud.models.iam_invitation import IamInvitation as IamInvitation
from hanzoai.cloud.models.iam_invitations_delete_output import IamInvitationsDeleteOutput as IamInvitationsDeleteOutput
+315 -3
View File
@@ -40,6 +40,7 @@ from hanzoai.cloud.models.iam_delete_output import IamDeleteOutput
from hanzoai.cloud.models.iam_delete_response import IamDeleteResponse
from hanzoai.cloud.models.iam_delete_result import IamDeleteResult
from hanzoai.cloud.models.iam_delete_session_out import IamDeleteSessionOut
from hanzoai.cloud.models.iam_identifier_body import IamIdentifierBody
from hanzoai.cloud.models.iam_input import IamInput
from hanzoai.cloud.models.iam_invitation import IamInvitation
from hanzoai.cloud.models.iam_invitations_delete_output import IamInvitationsDeleteOutput
@@ -24659,6 +24660,317 @@ class IamApi:
@validate_call
def post_iam_auth_identifier(
self,
iam_identifier_body: IamIdentifierBody,
cf_connecting_ip: Optional[StrictStr] = None,
x_forwarded_for: Optional[StrictStr] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> IamAnswer:
"""Answers whether an account holds an email address at an application, and whether that account signs in with a password.
Answers whether an account holds an email address at an application, and whether that account signs in with a password. Only an application that registers strangers answers, since its signup says as much already. The address is resolved exactly as sign-in resolves it, so the screen and the sign-in cannot disagree. A client asking faster than a person types is refused with 429.
:param iam_identifier_body: (required)
:type iam_identifier_body: IamIdentifierBody
:param cf_connecting_ip:
:type cf_connecting_ip: str
:param x_forwarded_for:
:type x_forwarded_for: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501
_param = self._post_iam_auth_identifier_serialize(
iam_identifier_body=iam_identifier_body,
cf_connecting_ip=cf_connecting_ip,
x_forwarded_for=x_forwarded_for,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "IamAnswer",
'400': "IamAnswer",
'429': "IamAnswer",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
).data
@validate_call
def post_iam_auth_identifier_with_http_info(
self,
iam_identifier_body: IamIdentifierBody,
cf_connecting_ip: Optional[StrictStr] = None,
x_forwarded_for: Optional[StrictStr] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[IamAnswer]:
"""Answers whether an account holds an email address at an application, and whether that account signs in with a password.
Answers whether an account holds an email address at an application, and whether that account signs in with a password. Only an application that registers strangers answers, since its signup says as much already. The address is resolved exactly as sign-in resolves it, so the screen and the sign-in cannot disagree. A client asking faster than a person types is refused with 429.
:param iam_identifier_body: (required)
:type iam_identifier_body: IamIdentifierBody
:param cf_connecting_ip:
:type cf_connecting_ip: str
:param x_forwarded_for:
:type x_forwarded_for: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501
_param = self._post_iam_auth_identifier_serialize(
iam_identifier_body=iam_identifier_body,
cf_connecting_ip=cf_connecting_ip,
x_forwarded_for=x_forwarded_for,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "IamAnswer",
'400': "IamAnswer",
'429': "IamAnswer",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
response_data.read()
return self.api_client.response_deserialize(
response_data=response_data,
response_types_map=_response_types_map,
)
@validate_call
def post_iam_auth_identifier_without_preload_content(
self,
iam_identifier_body: IamIdentifierBody,
cf_connecting_ip: Optional[StrictStr] = None,
x_forwarded_for: Optional[StrictStr] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
Tuple[
Annotated[StrictFloat, Field(gt=0)],
Annotated[StrictFloat, Field(gt=0)]
]
] = None,
_request_auth: Optional[Dict[StrictStr, Any]] = None,
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
"""Answers whether an account holds an email address at an application, and whether that account signs in with a password.
Answers whether an account holds an email address at an application, and whether that account signs in with a password. Only an application that registers strangers answers, since its signup says as much already. The address is resolved exactly as sign-in resolves it, so the screen and the sign-in cannot disagree. A client asking faster than a person types is refused with 429.
:param iam_identifier_body: (required)
:type iam_identifier_body: IamIdentifierBody
:param cf_connecting_ip:
:type cf_connecting_ip: str
:param x_forwarded_for:
:type x_forwarded_for: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
(connection, read) timeouts.
:type _request_timeout: int, tuple(int, int), optional
:param _request_auth: set to override the auth_settings for an a single
request; this effectively ignores the
authentication in the spec for a single request.
:type _request_auth: dict, optional
:param _content_type: force content-type for the request.
:type _content_type: str, Optional
:param _headers: set to override the headers for a single
request; this effectively ignores the headers
in the spec for a single request.
:type _headers: dict, optional
:param _host_index: set to override the host_index for a single
request; this effectively ignores the host_index
in the spec for a single request.
:type _host_index: int, optional
:return: Returns the result object.
""" # noqa: E501
_param = self._post_iam_auth_identifier_serialize(
iam_identifier_body=iam_identifier_body,
cf_connecting_ip=cf_connecting_ip,
x_forwarded_for=x_forwarded_for,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
_host_index=_host_index
)
_response_types_map: Dict[str, Optional[str]] = {
'200': "IamAnswer",
'400': "IamAnswer",
'429': "IamAnswer",
}
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
)
return response_data.response
def _post_iam_auth_identifier_serialize(
self,
iam_identifier_body,
cf_connecting_ip,
x_forwarded_for,
_request_auth,
_content_type,
_headers,
_host_index,
) -> RequestSerialized:
_host = None
_collection_formats: Dict[str, str] = {
}
_path_params: Dict[str, str] = {}
_query_params: List[Tuple[str, str]] = []
_header_params: Dict[str, Optional[str]] = _headers or {}
_form_params: List[Tuple[str, str]] = []
_files: Dict[
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
] = {}
_body_params: Optional[bytes] = None
# process the path parameters
# process the query parameters
# process the header parameters
if cf_connecting_ip is not None:
_header_params['CF-Connecting-IP'] = cf_connecting_ip
if x_forwarded_for is not None:
_header_params['X-Forwarded-For'] = x_forwarded_for
# process the form parameters
# process the body parameter
if iam_identifier_body is not None:
_body_params = iam_identifier_body
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
'application/json',
'application/problem+json'
]
)
# set the HTTP header `Content-Type`
if _content_type:
_header_params['Content-Type'] = _content_type
else:
_default_content_type = (
self.api_client.select_header_content_type(
[
'application/json'
]
)
)
if _default_content_type is not None:
_header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
'bearer'
]
return self.api_client.param_serialize(
method='POST',
resource_path='/v1/iam/auth/identifier',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
body=_body_params,
post_params=_form_params,
files=_files,
auth_settings=_auth_settings,
collection_formats=_collection_formats,
_host=_host,
_request_auth=_request_auth
)
@validate_call
def post_iam_certs(
self,
@@ -26115,7 +26427,7 @@ class IamApi:
) -> IamKey:
"""Issues an API key.
Issues an API key. A standard key comes back as a publishable half you may ship in client code and a secret half you must not — the secret is shown once, at creation, and cannot be retrieved afterwards. A publish-scoped key is issued with the publishable half only, so there is no secret to leak. A name already used in your organization is refused rather than reissued, so creating twice never silently invalidates a key that is in production.
Issues an API key. A standard key comes back as a publishable half you may ship in client code and a secret half you must not — the secret is shown once, at creation, and cannot be retrieved afterwards. A publish-scoped key is issued with the publishable half only, so there is no secret to leak. A name already used in your organization is refused rather than reissued, so creating twice never silently invalidates a key that is in production. A key you create is yours: it names you as its holder and speaks for you in the organization it is filed in. Naming anyone else as its holder is refused; a SuperAdmin names the person a key is for.
:param iam_key: (required)
:type iam_key: IamKey
@@ -26183,7 +26495,7 @@ class IamApi:
) -> ApiResponse[IamKey]:
"""Issues an API key.
Issues an API key. A standard key comes back as a publishable half you may ship in client code and a secret half you must not — the secret is shown once, at creation, and cannot be retrieved afterwards. A publish-scoped key is issued with the publishable half only, so there is no secret to leak. A name already used in your organization is refused rather than reissued, so creating twice never silently invalidates a key that is in production.
Issues an API key. A standard key comes back as a publishable half you may ship in client code and a secret half you must not — the secret is shown once, at creation, and cannot be retrieved afterwards. A publish-scoped key is issued with the publishable half only, so there is no secret to leak. A name already used in your organization is refused rather than reissued, so creating twice never silently invalidates a key that is in production. A key you create is yours: it names you as its holder and speaks for you in the organization it is filed in. Naming anyone else as its holder is refused; a SuperAdmin names the person a key is for.
:param iam_key: (required)
:type iam_key: IamKey
@@ -26251,7 +26563,7 @@ class IamApi:
) -> RESTResponseType:
"""Issues an API key.
Issues an API key. A standard key comes back as a publishable half you may ship in client code and a secret half you must not — the secret is shown once, at creation, and cannot be retrieved afterwards. A publish-scoped key is issued with the publishable half only, so there is no secret to leak. A name already used in your organization is refused rather than reissued, so creating twice never silently invalidates a key that is in production.
Issues an API key. A standard key comes back as a publishable half you may ship in client code and a secret half you must not — the secret is shown once, at creation, and cannot be retrieved afterwards. A publish-scoped key is issued with the publishable half only, so there is no secret to leak. A name already used in your organization is refused rather than reissued, so creating twice never silently invalidates a key that is in production. A key you create is yours: it names you as its holder and speaks for you in the organization it is filed in. Naming anyone else as its holder is refused; a SuperAdmin names the person a key is for.
:param iam_key: (required)
:type iam_key: IamKey
+1
View File
@@ -1027,6 +1027,7 @@ from hanzoai.cloud.models.iam_delete_result import IamDeleteResult
from hanzoai.cloud.models.iam_delete_session_out import IamDeleteSessionOut
from hanzoai.cloud.models.iam_face_id import IamFaceId
from hanzoai.cloud.models.iam_filter import IamFilter
from hanzoai.cloud.models.iam_identifier_body import IamIdentifierBody
from hanzoai.cloud.models.iam_input import IamInput
from hanzoai.cloud.models.iam_invitation import IamInvitation
from hanzoai.cloud.models.iam_invitations_delete_output import IamInvitationsDeleteOutput
@@ -0,0 +1,89 @@
# coding: utf-8
"""
Hanzo Cloud API
The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
The version of the OpenAPI document: v1
Generated by OpenAPI Generator (https://openapi-generator.tech)
Do not edit the class manually.
""" # noqa: E501
from __future__ import annotations
import pprint
import re # noqa: F401
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
class IamIdentifierBody(BaseModel):
"""
IamIdentifierBody
""" # noqa: E501
client_id: Optional[StrictStr] = Field(default=None, description="ClientId is the application's OAuth client id.", alias="clientId")
identifier: Optional[StrictStr] = Field(default=None, description="Identifier is the email address the person typed.")
__properties: ClassVar[List[str]] = ["clientId", "identifier"]
model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))
def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())
@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of IamIdentifierBody from a JSON string"""
return cls.from_dict(json.loads(json_str))
def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.
This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:
* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([
])
_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of IamIdentifierBody from a dict"""
if obj is None:
return None
if not isinstance(obj, dict):
return cls.model_validate(obj)
_obj = cls.model_validate({
"clientId": obj.get("clientId"),
"identifier": obj.get("identifier")
})
return _obj
+1 -1
View File
@@ -1,6 +1,6 @@
[project]
name = "hanzoai"
version = "8.5.501"
version = "8.5.505"
description = "The official Python library for the Hanzo API"
dynamic = ["readme"]
license = "Apache-2.0"
Generated
+1 -1
View File
@@ -2252,7 +2252,7 @@ wheels = [
[[package]]
name = "hanzoai"
version = "8.5.500"
version = "8.5.501"
source = { editable = "." }
dependencies = [
{ name = "pydantic" },