diff --git a/.github/workflows/mypy.yml b/.github/workflows/mypy.yml index 69d7d12c0..23b51b681 100644 --- a/.github/workflows/mypy.yml +++ b/.github/workflows/mypy.yml @@ -10,7 +10,7 @@ on: - main env: - SPEAKEASY_VERSION: v2.952.4 + SPEAKEASY_VERSION: v2.954.10 jobs: mypy: diff --git a/google/genai/_gaos/credentials.py b/google/genai/_gaos/credentials.py index f132a9d5d..e40a638ae 100644 --- a/google/genai/_gaos/credentials.py +++ b/google/genai/_gaos/credentials.py @@ -237,7 +237,7 @@ def create( :param refresh_token: Required. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Required. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -268,7 +268,7 @@ def create( Accepts either a single location (e.g. \"header\") or an array of locations. :param trusted_domains: Optional. List of domains allowed to receive this environment variable value in HTTP requests. - :param type: + :param type_: :param value: Required. Input only. Secret value of the environment variable. Write-only; never returned in responses. :param extra_headers: Additional headers to set or replace on requests. @@ -301,7 +301,7 @@ def create( :param prefix: Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to '' for no prefix. :param token: Required. Input only. The static bearer token. Write-only; never returned in responses. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -331,7 +331,7 @@ def create( :param refresh_token: Required. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Required. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Required. Locations where the environment variable can be injected in outgoing HTTP requests. Must contain at least one location. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -372,7 +372,7 @@ def create( :param refresh_token: Required. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Required. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Required. Locations where the environment variable can be injected in outgoing HTTP requests. Must contain at least one location. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -991,7 +991,7 @@ def update( :param refresh_token: Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Optional. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -1023,7 +1023,7 @@ def update( Accepts either a single location (e.g. \"header\") or an array of locations. :param trusted_domains: Optional. List of domains allowed to receive this environment variable value in HTTP requests. - :param type: + :param type_: :param value: Optional. Input only. Secret value of the environment variable. Write-only; never returned in responses. :param extra_headers: Additional headers to set or replace on requests. @@ -1057,7 +1057,7 @@ def update( :param prefix: Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to '' for no prefix. :param token: Optional. Input only. The static bearer token. Write-only; never returned in responses. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -1089,7 +1089,7 @@ def update( :param refresh_token: Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Optional. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Optional. Locations where the environment variable can be injected in outgoing HTTP requests. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -1132,7 +1132,7 @@ def update( :param refresh_token: Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Optional. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Optional. Locations where the environment variable can be injected in outgoing HTTP requests. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -1650,7 +1650,7 @@ async def create( :param refresh_token: Required. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Required. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -1681,7 +1681,7 @@ async def create( Accepts either a single location (e.g. \"header\") or an array of locations. :param trusted_domains: Optional. List of domains allowed to receive this environment variable value in HTTP requests. - :param type: + :param type_: :param value: Required. Input only. Secret value of the environment variable. Write-only; never returned in responses. :param extra_headers: Additional headers to set or replace on requests. @@ -1714,7 +1714,7 @@ async def create( :param prefix: Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to '' for no prefix. :param token: Required. Input only. The static bearer token. Write-only; never returned in responses. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -1744,7 +1744,7 @@ async def create( :param refresh_token: Required. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Required. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Required. Locations where the environment variable can be injected in outgoing HTTP requests. Must contain at least one location. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -1785,7 +1785,7 @@ async def create( :param refresh_token: Required. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Required. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Required. Locations where the environment variable can be injected in outgoing HTTP requests. Must contain at least one location. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -2413,7 +2413,7 @@ async def update( :param refresh_token: Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Optional. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -2445,7 +2445,7 @@ async def update( Accepts either a single location (e.g. \"header\") or an array of locations. :param trusted_domains: Optional. List of domains allowed to receive this environment variable value in HTTP requests. - :param type: + :param type_: :param value: Optional. Input only. Secret value of the environment variable. Write-only; never returned in responses. :param extra_headers: Additional headers to set or replace on requests. @@ -2479,7 +2479,7 @@ async def update( :param prefix: Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to '' for no prefix. :param token: Optional. Input only. The static bearer token. Write-only; never returned in responses. - :param type: + :param type_: :param extra_headers: Additional headers to set or replace on requests. :param extra_query: Additional query parameters to append to requests. :param extra_body: Additional JSON object fields to merge into request bodies. @@ -2511,7 +2511,7 @@ async def update( :param refresh_token: Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Optional. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Optional. Locations where the environment variable can be injected in outgoing HTTP requests. Accepts either a single location (e.g. \"header\") or an array of locations. @@ -2554,7 +2554,7 @@ async def update( :param refresh_token: Optional. Input only. OAuth2 refresh token. Write-only; never returned in responses. :param scopes: Optional. List of OAuth2 scopes. :param token_url: Optional. OAuth2 token endpoint URL for refreshing access tokens. - :param type: + :param type_: :param injection_location: Optional. Locations where the environment variable can be injected in outgoing HTTP requests. Accepts either a single location (e.g. \"header\") or an array of locations. diff --git a/google/genai/_gaos/models/cancelinteractionbyid.py b/google/genai/_gaos/models/cancelinteractionbyid.py index bb27fa9b3..f37ebc95d 100644 --- a/google/genai/_gaos/models/cancelinteractionbyid.py +++ b/google/genai/_gaos/models/cancelinteractionbyid.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class CancelInteractionByIDGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -77,17 +99,34 @@ class CancelInteractionByIDRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createagent.py b/google/genai/_gaos/models/createagent.py index bb99d3bd7..a750d83c6 100644 --- a/google/genai/_gaos/models/createagent.py +++ b/google/genai/_gaos/models/createagent.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ..types.agents import agent as agents_agent +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, RequestMetadata from pydantic import model_serializer from typing import Optional @@ -39,18 +44,35 @@ class CreateAgentGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -76,17 +98,34 @@ class CreateAgentRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createcredential.py b/google/genai/_gaos/models/createcredential.py index 91950ea86..74d27dba1 100644 --- a/google/genai/_gaos/models/createcredential.py +++ b/google/genai/_gaos/models/createcredential.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.credentials import ( credentialcreateparams as credentials_credentialcreateparams, ) @@ -41,18 +46,35 @@ class CreateCredentialGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -78,17 +100,34 @@ class CreateCredentialRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createenvironment.py b/google/genai/_gaos/models/createenvironment.py index 570f56ed5..2ee6ea764 100644 --- a/google/genai/_gaos/models/createenvironment.py +++ b/google/genai/_gaos/models/createenvironment.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.environments import ( createenvironmentrequest as environments_createenvironmentrequest, ) @@ -41,18 +46,35 @@ class CreateEnvironmentGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -78,17 +100,34 @@ class CreateEnvironmentRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createinteraction.py b/google/genai/_gaos/models/createinteraction.py index 63c352290..16bac64b6 100644 --- a/google/genai/_gaos/models/createinteraction.py +++ b/google/genai/_gaos/models/createinteraction.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.interactions import ( createagentinteraction as interactions_createagentinteraction, createmodelinteraction as interactions_createmodelinteraction, @@ -45,18 +50,35 @@ class CreateInteractionGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -102,18 +124,35 @@ class CreateInteractionRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createtrigger.py b/google/genai/_gaos/models/createtrigger.py index 4113d5feb..902f52624 100644 --- a/google/genai/_gaos/models/createtrigger.py +++ b/google/genai/_gaos/models/createtrigger.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.triggers import triggercreateparams as triggers_triggercreateparams from ..utils import FieldMetadata, PathParamMetadata, RequestMetadata from pydantic import model_serializer @@ -39,18 +44,35 @@ class CreateTriggerGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -76,17 +98,34 @@ class CreateTriggerRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createvoice.py b/google/genai/_gaos/models/createvoice.py index 9eb620455..0f1b446fd 100644 --- a/google/genai/_gaos/models/createvoice.py +++ b/google/genai/_gaos/models/createvoice.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.voices import createvoicerequest as voices_createvoicerequest from ..utils import FieldMetadata, PathParamMetadata, RequestMetadata from pydantic import model_serializer @@ -39,18 +44,35 @@ class CreateVoiceGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -76,17 +98,34 @@ class CreateVoiceRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/createwebhook.py b/google/genai/_gaos/models/createwebhook.py index 5ca65db46..c11dbe59b 100644 --- a/google/genai/_gaos/models/createwebhook.py +++ b/google/genai/_gaos/models/createwebhook.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.webhooks import webhook as webhooks_webhook from ..utils import FieldMetadata, PathParamMetadata, RequestMetadata from pydantic import model_serializer @@ -39,18 +44,35 @@ class CreateWebhookGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -76,17 +98,34 @@ class CreateWebhookRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deleteagent.py b/google/genai/_gaos/models/deleteagent.py index adb9761fe..1f7d8239b 100644 --- a/google/genai/_gaos/models/deleteagent.py +++ b/google/genai/_gaos/models/deleteagent.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class DeleteAgentGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -77,17 +99,34 @@ class DeleteAgentRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deletecredential.py b/google/genai/_gaos/models/deletecredential.py index 58b725b8c..30f15780c 100644 --- a/google/genai/_gaos/models/deletecredential.py +++ b/google/genai/_gaos/models/deletecredential.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class DeleteCredentialGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -78,17 +100,34 @@ class DeleteCredentialRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deleteenvironment.py b/google/genai/_gaos/models/deleteenvironment.py index dcd26b9a2..ecc92bd62 100644 --- a/google/genai/_gaos/models/deleteenvironment.py +++ b/google/genai/_gaos/models/deleteenvironment.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class DeleteEnvironmentGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -78,17 +100,34 @@ class DeleteEnvironmentRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deleteinteraction.py b/google/genai/_gaos/models/deleteinteraction.py index 3a7dee4f0..44e59ff08 100644 --- a/google/genai/_gaos/models/deleteinteraction.py +++ b/google/genai/_gaos/models/deleteinteraction.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class DeleteInteractionGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -77,17 +99,34 @@ class DeleteInteractionRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deletetrigger.py b/google/genai/_gaos/models/deletetrigger.py index d1575ea0c..a6b3646b8 100644 --- a/google/genai/_gaos/models/deletetrigger.py +++ b/google/genai/_gaos/models/deletetrigger.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class DeleteTriggerGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -74,17 +96,34 @@ class DeleteTriggerRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deletevoice.py b/google/genai/_gaos/models/deletevoice.py index cdbd9b80b..04f29728b 100644 --- a/google/genai/_gaos/models/deletevoice.py +++ b/google/genai/_gaos/models/deletevoice.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class DeleteVoiceGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -81,17 +103,34 @@ class DeleteVoiceRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/deletewebhook.py b/google/genai/_gaos/models/deletewebhook.py index 590f76d20..e82fec5c5 100644 --- a/google/genai/_gaos/models/deletewebhook.py +++ b/google/genai/_gaos/models/deletewebhook.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class DeleteWebhookGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -74,17 +96,34 @@ class DeleteWebhookRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getagent.py b/google/genai/_gaos/models/getagent.py index 8c576574a..1e77b9444 100644 --- a/google/genai/_gaos/models/getagent.py +++ b/google/genai/_gaos/models/getagent.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class GetAgentGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -77,17 +99,34 @@ class GetAgentRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getcredential.py b/google/genai/_gaos/models/getcredential.py index 9d6792962..c952d6de2 100644 --- a/google/genai/_gaos/models/getcredential.py +++ b/google/genai/_gaos/models/getcredential.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class GetCredentialGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -78,17 +100,34 @@ class GetCredentialRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getenvironment.py b/google/genai/_gaos/models/getenvironment.py index e30efdfef..e43ca1d0c 100644 --- a/google/genai/_gaos/models/getenvironment.py +++ b/google/genai/_gaos/models/getenvironment.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class GetEnvironmentGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -78,17 +100,34 @@ class GetEnvironmentRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getenvironmentfiles.py b/google/genai/_gaos/models/getenvironmentfiles.py index c72d9081c..592f4f1e7 100644 --- a/google/genai/_gaos/models/getenvironmentfiles.py +++ b/google/genai/_gaos/models/getenvironmentfiles.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class GetEnvironmentFilesGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -105,17 +127,34 @@ class GetEnvironmentFilesRequest(BaseModel): r"""Optional. If true and the path is a directory, recursively lists all files.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "page_size", "page_token", "recursive"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getinteractionbyid.py b/google/genai/_gaos/models/getinteractionbyid.py index 62189cb12..d372a6bae 100644 --- a/google/genai/_gaos/models/getinteractionbyid.py +++ b/google/genai/_gaos/models/getinteractionbyid.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.interactions import ( interaction as interactions_interaction, interactionsseevent as interactions_interactionsseevent, @@ -44,18 +49,35 @@ class GetInteractionByIDGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -110,20 +132,37 @@ class GetInteractionByIDRequest(BaseModel): r"""If true, streams the interaction events as Server-Sent Events.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["api_version", "include_input", "last_event_id", "stream"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/gettrigger.py b/google/genai/_gaos/models/gettrigger.py index 22a1a80d6..5a1fb5d16 100644 --- a/google/genai/_gaos/models/gettrigger.py +++ b/google/genai/_gaos/models/gettrigger.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class GetTriggerGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -74,17 +96,34 @@ class GetTriggerRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getvoice.py b/google/genai/_gaos/models/getvoice.py index 33bfb4602..5e5262b76 100644 --- a/google/genai/_gaos/models/getvoice.py +++ b/google/genai/_gaos/models/getvoice.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class GetVoiceGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -81,17 +103,34 @@ class GetVoiceRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/getwebhook.py b/google/genai/_gaos/models/getwebhook.py index c5447888f..4e8054dcf 100644 --- a/google/genai/_gaos/models/getwebhook.py +++ b/google/genai/_gaos/models/getwebhook.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class GetWebhookGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -74,17 +96,34 @@ class GetWebhookRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/internal/globals.py b/google/genai/_gaos/models/internal/globals.py index e3b59dcef..77a6bc3c4 100644 --- a/google/genai/_gaos/models/internal/globals.py +++ b/google/genai/_gaos/models/internal/globals.py @@ -18,7 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ...types import BaseModel, UNSET_SENTINEL +from ...types import ( + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) +from ...types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ...utils import FieldMetadata, HeaderMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -48,17 +58,34 @@ class Globals(BaseModel): r"""Quota project header to send with Google GenAI API requests.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "user_project"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listagents.py b/google/genai/_gaos/models/listagents.py index 8e89986c6..f4f96cddf 100644 --- a/google/genai/_gaos/models/listagents.py +++ b/google/genai/_gaos/models/listagents.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class ListAgentsGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -91,17 +113,34 @@ class ListAgentsRequest(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "page_size", "page_token", "parent"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listcredentials.py b/google/genai/_gaos/models/listcredentials.py index ecc011583..393d2171c 100644 --- a/google/genai/_gaos/models/listcredentials.py +++ b/google/genai/_gaos/models/listcredentials.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class ListCredentialsGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -83,17 +105,34 @@ class ListCredentialsRequest(BaseModel): r"""Optional. Pagination token.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "page_size", "page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listenvironments.py b/google/genai/_gaos/models/listenvironments.py index 881fa6787..53fae3928 100644 --- a/google/genai/_gaos/models/listenvironments.py +++ b/google/genai/_gaos/models/listenvironments.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class ListEnvironmentsGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -87,17 +109,34 @@ class ListEnvironmentsRequest(BaseModel): r"""Optional. Pagination token.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "page_size", "page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listtriggerexecutions.py b/google/genai/_gaos/models/listtriggerexecutions.py index bc02bedb8..3b7a29332 100644 --- a/google/genai/_gaos/models/listtriggerexecutions.py +++ b/google/genai/_gaos/models/listtriggerexecutions.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class ListTriggerExecutionsGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -93,17 +115,34 @@ class ListTriggerExecutionsRequest(BaseModel): r"""A page token from a previous ListTriggerExecutions call.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "page_size", "page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listtriggers.py b/google/genai/_gaos/models/listtriggers.py index 5c688dff1..cd96675ba 100644 --- a/google/genai/_gaos/models/listtriggers.py +++ b/google/genai/_gaos/models/listtriggers.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class ListTriggersGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -93,17 +115,34 @@ class ListTriggersRequest(BaseModel): r"""Optional. A page token from a previous ListTriggers call.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "filter", "page_size", "page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listvoices.py b/google/genai/_gaos/models/listvoices.py index 57b2930db..ff5bca5dc 100644 --- a/google/genai/_gaos/models/listvoices.py +++ b/google/genai/_gaos/models/listvoices.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class ListVoicesGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -235,6 +257,9 @@ class ListVoicesRequest(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -252,15 +277,29 @@ def serialize_model(self, handler): "type", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/listwebhooks.py b/google/genai/_gaos/models/listwebhooks.py index 8195c7843..82ac564a3 100644 --- a/google/genai/_gaos/models/listwebhooks.py +++ b/google/genai/_gaos/models/listwebhooks.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata, QueryParamMetadata from pydantic import model_serializer from typing import Optional @@ -38,18 +43,35 @@ class ListWebhooksGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -93,17 +115,34 @@ class ListWebhooksRequest(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "page_size", "page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/pingwebhook.py b/google/genai/_gaos/models/pingwebhook.py index b51d8203d..37b8eb59d 100644 --- a/google/genai/_gaos/models/pingwebhook.py +++ b/google/genai/_gaos/models/pingwebhook.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.webhooks import pingwebhookrequest as webhooks_pingwebhookrequest from ..utils import FieldMetadata, PathParamMetadata, RequestMetadata from pydantic import model_serializer @@ -39,18 +44,35 @@ class PingWebhookGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -83,17 +105,34 @@ class PingWebhookRequest(BaseModel): r"""The request body.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "body"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/rotatesigningsecret.py b/google/genai/_gaos/models/rotatesigningsecret.py index d82629b95..eb14f82ec 100644 --- a/google/genai/_gaos/models/rotatesigningsecret.py +++ b/google/genai/_gaos/models/rotatesigningsecret.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.webhooks import ( rotatesigningsecretrequest as webhooks_rotatesigningsecretrequest, ) @@ -41,18 +46,35 @@ class RotateSigningSecretGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -85,17 +107,34 @@ class RotateSigningSecretRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/runtrigger.py b/google/genai/_gaos/models/runtrigger.py index 4e3d0fc47..00caefc85 100644 --- a/google/genai/_gaos/models/runtrigger.py +++ b/google/genai/_gaos/models/runtrigger.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import FieldMetadata, PathParamMetadata import pydantic from pydantic import model_serializer @@ -39,18 +44,35 @@ class RunTriggerGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -77,17 +99,34 @@ class RunTriggerRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/startenvironmentfileupload.py b/google/genai/_gaos/models/startenvironmentfileupload.py index 539a0ca04..0bfbdca74 100644 --- a/google/genai/_gaos/models/startenvironmentfileupload.py +++ b/google/genai/_gaos/models/startenvironmentfileupload.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..utils import ( FieldMetadata, HeaderMetadata, @@ -29,7 +34,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -46,18 +51,35 @@ class StartEnvironmentFileUploadGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -140,19 +162,41 @@ class StartEnvironmentFileUploadRequest(BaseModel): ] = "resumable" r"""Resumable upload protocol selector.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update( + ["x_goog_upload_command", "x_goog_upload_protocol"] + ) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "extract", "overwrite"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/updatecredential.py b/google/genai/_gaos/models/updatecredential.py index 3dd675a67..c1d016fce 100644 --- a/google/genai/_gaos/models/updatecredential.py +++ b/google/genai/_gaos/models/updatecredential.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.credentials import credentialupdate as credentials_credentialupdate from ..utils import ( FieldMetadata, @@ -44,18 +49,35 @@ class UpdateCredentialGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -100,17 +122,34 @@ class UpdateCredentialRequest(BaseModel): r"""Optional. The list of fields to update.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "update_mask"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/updatetrigger.py b/google/genai/_gaos/models/updatetrigger.py index 2a99af618..81c0d09a5 100644 --- a/google/genai/_gaos/models/updatetrigger.py +++ b/google/genai/_gaos/models/updatetrigger.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.triggers import triggerupdate as triggers_triggerupdate from ..utils import FieldMetadata, PathParamMetadata, RequestMetadata from pydantic import model_serializer @@ -39,18 +44,35 @@ class UpdateTriggerGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -83,17 +105,34 @@ class UpdateTriggerRequest(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/models/updatewebhook.py b/google/genai/_gaos/models/updatewebhook.py index c80b710ee..aa7f9391c 100644 --- a/google/genai/_gaos/models/updatewebhook.py +++ b/google/genai/_gaos/models/updatewebhook.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from ..types import BaseModel, UNSET_SENTINEL +from ..types import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..types.basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..types.webhooks import webhookupdate as webhooks_webhookupdate from ..utils import ( FieldMetadata, @@ -44,18 +49,35 @@ class UpdateWebhookGlobals(BaseModel): r"""API version for request routing.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -96,17 +118,34 @@ class UpdateWebhookRequest(BaseModel): r"""Optional list of fields to update.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_version", "update_mask"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/__init__.py b/google/genai/_gaos/types/__init__.py index 9e7116f83..aa1c66c27 100644 --- a/google/genai/_gaos/types/__init__.py +++ b/google/genai/_gaos/types/__init__.py @@ -19,12 +19,14 @@ from .basemodel import ( BaseModel, + current_exclude_none, Nullable, OptionalNullable, UnrecognizedInt, UnrecognizedStr, UNSET, UNSET_SENTINEL, + serialize_with_info, ) from .base64fileinput import Base64EncodedString, Base64FileInput from typing import Any, TYPE_CHECKING @@ -55,6 +57,8 @@ "UNSET_SENTINEL", "UnrecognizedInt", "UnrecognizedStr", + "current_exclude_none", + "serialize_with_info", ] _dynamic_imports: dict[str, str] = { diff --git a/google/genai/_gaos/types/agents/agent.py b/google/genai/_gaos/types/agents/agent.py index b9b1ce10e..fb5aee737 100644 --- a/google/genai/_gaos/types/agents/agent.py +++ b/google/genai/_gaos/types/agents/agent.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..interactions import ( antigravityagentconfig as interactions_antigravityagentconfig, environment as interactions_environment, @@ -113,6 +118,9 @@ class Agent(BaseModel): r"""The tools available to the agent.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -125,15 +133,29 @@ def serialize_model(self, handler): "tools", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/agents/agentlistresponse.py b/google/genai/_gaos/types/agents/agentlistresponse.py index 27e91f7e0..f37f7a67c 100644 --- a/google/genai/_gaos/types/agents/agentlistresponse.py +++ b/google/genai/_gaos/types/agents/agentlistresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .agent import Agent, AgentParam from pydantic import model_serializer from typing import List, Optional @@ -40,17 +45,34 @@ class AgentListResponse(BaseModel): r"""A token to retrieve the next page of results.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["agents", "next_page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/agents/agenttool.py b/google/genai/_gaos/types/agents/agenttool.py index b0bed887e..ed08114ea 100644 --- a/google/genai/_gaos/types/agents/agenttool.py +++ b/google/genai/_gaos/types/agents/agenttool.py @@ -28,7 +28,7 @@ urlcontext as interactions_urlcontext, ) from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -56,6 +56,10 @@ class UnknownAgentTool(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _AGENT_TOOL_VARIANTS: dict[str, Any] = { "code_execution": interactions_codeexecution.CodeExecution, diff --git a/google/genai/_gaos/types/basemodel.py b/google/genai/_gaos/types/basemodel.py index e67d643ba..8abefea09 100644 --- a/google/genai/_gaos/types/basemodel.py +++ b/google/genai/_gaos/types/basemodel.py @@ -17,97 +17,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -import json - +from contextvars import ContextVar from pydantic import ConfigDict, model_serializer from pydantic import BaseModel as PydanticBaseModel -from pydantic_core import core_schema, to_jsonable_python -from typing import TYPE_CHECKING, Any, Callable, Literal, Optional, TypeVar, Union +from pydantic_core import PydanticSerializationUnexpectedValue, core_schema +from typing import TYPE_CHECKING, Any, Callable, Literal, Optional, Type, TypeVar, Union from typing_extensions import TypeAliasType, TypeAlias class BaseModel(PydanticBaseModel): model_config = ConfigDict( - populate_by_name=True, - arbitrary_types_allowed=True, - protected_namespaces=(), - extra="allow", + populate_by_name=True, arbitrary_types_allowed=True, protected_namespaces=(), extra="allow" ) - def model_dump( - self, - *, - mode: Literal["json", "python"] | str = "python", - include: Any = None, - exclude: Any = None, - context: Any | None = None, - by_alias: bool | None = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - exclude_computed_fields: bool = False, - round_trip: bool = False, - warnings: bool | Literal["none", "warn", "error"] = True, - fallback: Callable[[Any], Any] | None = None, - serialize_as_any: bool = False, - ) -> dict[str, Any]: - dumped = super().model_dump( - mode=mode, - include=include, - exclude=exclude, - context=context, - by_alias=by_alias, - exclude_unset=exclude_unset, - exclude_defaults=exclude_defaults, - exclude_none=exclude_none, - exclude_computed_fields=exclude_computed_fields, - round_trip=round_trip, - warnings=warnings, - fallback=fallback, - serialize_as_any=serialize_as_any, - ) - extra = self.__pydantic_extra__ or {} - for key, value in extra.items(): - if key in dumped or (exclude_none and value is None): - continue - dumped[key] = to_jsonable_python(value) if mode == "json" else value - return dumped - - def model_dump_json( - self, - *, - indent: int | None = None, - ensure_ascii: bool = False, - include: Any = None, - exclude: Any = None, - context: Any | None = None, - by_alias: bool | None = None, - exclude_unset: bool = False, - exclude_defaults: bool = False, - exclude_none: bool = False, - exclude_computed_fields: bool = False, - round_trip: bool = False, - warnings: bool | Literal["none", "warn", "error"] = True, - fallback: Callable[[Any], Any] | None = None, - serialize_as_any: bool = False, - ) -> str: - dumped = self.model_dump( - mode="json", - include=include, - exclude=exclude, - context=context, - by_alias=by_alias, - exclude_unset=exclude_unset, - exclude_defaults=exclude_defaults, - exclude_none=exclude_none, - exclude_computed_fields=exclude_computed_fields, - round_trip=round_trip, - warnings=warnings, - fallback=fallback, - serialize_as_any=serialize_as_any, - ) - return json.dumps(dumped, indent=indent, ensure_ascii=ensure_ascii) - def to_dict( self, *, @@ -125,12 +47,13 @@ def to_dict( exclude_defaults=exclude_defaults, exclude_none=exclude_none, warnings=warnings, + context={SERIALIZATION_METHODS_DUMP: True}, ) def to_json( self, *, - indent: int | None = 2, + indent: Optional[int] = 2, use_api_names: bool = True, exclude_unset: bool = True, exclude_defaults: bool = False, @@ -144,10 +67,13 @@ def to_json( exclude_defaults=exclude_defaults, exclude_none=exclude_none, warnings=warnings, + context={SERIALIZATION_METHODS_DUMP: True}, ) class Unset(BaseModel): + model_config = ConfigDict(extra="ignore") + @model_serializer(mode="plain") def serialize_model(self): return UNSET_SENTINEL @@ -158,6 +84,7 @@ def __bool__(self) -> Literal[False]: UNSET = Unset() UNSET_SENTINEL = "~?~unset~?~sentinel~?~" +SERIALIZATION_METHODS_DUMP = "speakeasy_serialization_methods_dump" T = TypeVar("T") @@ -171,6 +98,73 @@ def __bool__(self) -> Literal[False]: ) +_exclude_none: ContextVar[Optional[bool]] = ContextVar("exclude_none", default=None) +_filtered_dump: ContextVar[bool] = ContextVar("filtered_dump", default=False) +_by_alias: ContextVar[Optional[bool]] = ContextVar("by_alias", default=None) +_serialization_methods_dump: ContextVar[bool] = ContextVar( + "serialization_methods_dump", default=False +) + + +def _is_serialization_methods_dump(info: core_schema.SerializationInfo) -> bool: + return isinstance(info.context, dict) and SERIALIZATION_METHODS_DUMP in info.context + + +def serialize_with_info( + serialize: Callable[[Any], Any], handler: Any, info: core_schema.SerializationInfo +) -> Any: + token = _exclude_none.set(info.exclude_none) + filtered_dump_token = _filtered_dump.set( + info.include is not None + or bool(info.exclude) + or info.exclude_unset + or info.exclude_defaults + ) + by_alias_token = _by_alias.set(info.by_alias) + serialization_methods_dump_token = _serialization_methods_dump.set( + _is_serialization_methods_dump(info) + ) + try: + return serialize(handler) + finally: + _serialization_methods_dump.reset(serialization_methods_dump_token) + _by_alias.reset(by_alias_token) + _filtered_dump.reset(filtered_dump_token) + _exclude_none.reset(token) + + +def current_exclude_none() -> Optional[bool]: + """Return the exclude_none option of the enclosing serialize_with_info call, or None outside of one.""" + return _exclude_none.get() + + +def current_filtered_dump() -> bool: + """Return whether the enclosing serialize_with_info call applies include, exclude, exclude_unset or exclude_defaults.""" + return _filtered_dump.get() + + +def current_by_alias() -> Optional[bool]: + """Return the by_alias option of the enclosing serialize_with_info call, or None outside of one.""" + return _by_alias.get() + + +def current_serialization_methods_dump() -> bool: + """Return whether the enclosing serialize_with_info call comes from to_dict() or to_json().""" + return _serialization_methods_dump.get() + + +def _unrecognized_serialization(cls: Type[Union[str, int]]) -> core_schema.PlainSerializerFunctionSerSchema: + def serialize(value: Any, info: core_schema.SerializationInfo) -> Any: + # Decline other values so union serialization tries the remaining members + if not isinstance(value, cls): + raise PydanticSerializationUnexpectedValue(f"Expected {cls.__name__}") + if not info.mode_is_json() and not _is_serialization_methods_dump(info): + return value + return str(value) if isinstance(value, str) else int(value) + + return core_schema.plain_serializer_function_ser_schema(serialize, info_arg=True) + + class UnrecognizedStr(str): @classmethod def __get_pydantic_core_schema__(cls, _source_type: Any, _handler: Any) -> core_schema.CoreSchema: @@ -190,9 +184,7 @@ def validate_lax(v: Any) -> 'UnrecognizedStr': core_schema.no_info_plain_validator_function(validate_lax) ]), strict_schema=core_schema.none_schema(), # Always fails in strict mode - serialization=core_schema.plain_serializer_function_ser_schema( - str - ), + serialization=_unrecognized_serialization(cls), ) @@ -211,7 +203,5 @@ def validate_lax(v: Any) -> 'UnrecognizedInt': core_schema.no_info_plain_validator_function(validate_lax) ]), strict_schema=core_schema.none_schema(), # Always fails in strict mode - serialization=core_schema.plain_serializer_function_ser_schema( - int - ), + serialization=_unrecognized_serialization(cls), ) diff --git a/google/genai/_gaos/types/credentials/credential.py b/google/genai/_gaos/types/credentials/credential.py index d9bd924ad..d205ab3a8 100644 --- a/google/genai/_gaos/types/credentials/credential.py +++ b/google/genai/_gaos/types/credentials/credential.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from datetime import datetime from pydantic import model_serializer from typing import Literal, Optional, Union @@ -80,17 +91,34 @@ class Credential(BaseModel): r"""Output only. The timestamp when the credential was last updated.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["create_time", "status", "type", "update_time"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/credentiallistresponse.py b/google/genai/_gaos/types/credentials/credentiallistresponse.py index 1ab56bbee..981d5f3fd 100644 --- a/google/genai/_gaos/types/credentials/credentiallistresponse.py +++ b/google/genai/_gaos/types/credentials/credentiallistresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .credential import Credential, CredentialTypedDict from pydantic import model_serializer from typing import List, Optional @@ -36,17 +41,34 @@ class CredentialListResponse(BaseModel): next_page_token: Optional[str] = None @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["credentials", "next_page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/environmentvariableconfig.py b/google/genai/_gaos/types/credentials/environmentvariableconfig.py index 5917c4264..b28392d1d 100644 --- a/google/genai/_gaos/types/credentials/environmentvariableconfig.py +++ b/google/genai/_gaos/types/credentials/environmentvariableconfig.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .injectionlocation_enum import InjectionLocationEnum import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -97,19 +102,39 @@ class EnvironmentVariableConfig(BaseModel): pydantic.Field(alias="type"), ] = "environment_variable" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["trusted_domains"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/environmentvariableupdateconfig.py b/google/genai/_gaos/types/credentials/environmentvariableupdateconfig.py index 7623b0ef1..8488df1b7 100644 --- a/google/genai/_gaos/types/credentials/environmentvariableupdateconfig.py +++ b/google/genai/_gaos/types/credentials/environmentvariableupdateconfig.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .injectionlocation_enum import InjectionLocationEnum import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -98,19 +103,39 @@ class EnvironmentVariableUpdateConfig(BaseModel): returned in responses. """ + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["injection_location", "trusted_domains", "value"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/httpbearerconfig.py b/google/genai/_gaos/types/credentials/httpbearerconfig.py index c334f31f0..3fcb3e0f0 100644 --- a/google/genai/_gaos/types/credentials/httpbearerconfig.py +++ b/google/genai/_gaos/types/credentials/httpbearerconfig.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -69,19 +74,39 @@ class HTTPBearerConfig(BaseModel): pydantic.Field(alias="type"), ] = "bearer_token" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["header_name", "prefix"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/httpbearerupdateconfig.py b/google/genai/_gaos/types/credentials/httpbearerupdateconfig.py index 34e94f880..256aa5e6b 100644 --- a/google/genai/_gaos/types/credentials/httpbearerupdateconfig.py +++ b/google/genai/_gaos/types/credentials/httpbearerupdateconfig.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -66,19 +71,39 @@ class HTTPBearerUpdateConfig(BaseModel): pydantic.Field(alias="type"), ] = "bearer_token" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["header_name", "prefix", "token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/oauth2config.py b/google/genai/_gaos/types/credentials/oauth2config.py index 45e40ad6a..ac132fcb8 100644 --- a/google/genai/_gaos/types/credentials/oauth2config.py +++ b/google/genai/_gaos/types/credentials/oauth2config.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -69,19 +74,39 @@ class OAuth2Config(BaseModel): pydantic.Field(alias="type"), ] = "oauth2" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["scopes"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/credentials/oauth2updateconfig.py b/google/genai/_gaos/types/credentials/oauth2updateconfig.py index a7fb9d60a..179fff7f2 100644 --- a/google/genai/_gaos/types/credentials/oauth2updateconfig.py +++ b/google/genai/_gaos/types/credentials/oauth2updateconfig.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -66,21 +71,41 @@ class OAuth2UpdateConfig(BaseModel): pydantic.Field(alias="type"), ] = "oauth2" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["client_id", "client_secret", "refresh_token", "scopes", "token_url"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/environments/createenvironmentrequest.py b/google/genai/_gaos/types/environments/createenvironmentrequest.py index 7b9143204..dbd81e43b 100644 --- a/google/genai/_gaos/types/environments/createenvironmentrequest.py +++ b/google/genai/_gaos/types/environments/createenvironmentrequest.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..interactions import ( environmentnetworkegressallowlist as interactions_environmentnetworkegressallowlist, source as interactions_source, @@ -81,17 +86,34 @@ class CreateEnvironmentRequest(BaseModel): r"""Sources to be mounted into the environment.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["from_environment", "network", "sources"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/environments/environment.py b/google/genai/_gaos/types/environments/environment.py index 49f611598..f7ec55228 100644 --- a/google/genai/_gaos/types/environments/environment.py +++ b/google/genai/_gaos/types/environments/environment.py @@ -18,8 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import serialize_int, validate_int +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..interactions import ( environmentnetworkegressallowlist as interactions_environmentnetworkegressallowlist, source as interactions_source, @@ -138,6 +149,9 @@ class Environment(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -151,15 +165,29 @@ def serialize_model(self, handler): "updated", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/environments/environmentfile.py b/google/genai/_gaos/types/environments/environmentfile.py index 4897d9c24..8751cdc9a 100644 --- a/google/genai/_gaos/types/environments/environmentfile.py +++ b/google/genai/_gaos/types/environments/environmentfile.py @@ -18,8 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import serialize_int, validate_int +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from datetime import datetime from pydantic import model_serializer from pydantic.functional_serializers import PlainSerializer @@ -100,19 +111,36 @@ class EnvironmentFile(BaseModel): r"""Output only. The type of the entry.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["created", "mime_type", "modified", "name", "path", "size_bytes", "type"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/environments/getenvironmentfilesresponse.py b/google/genai/_gaos/types/environments/getenvironmentfilesresponse.py index acbcbb275..c39d37bfa 100644 --- a/google/genai/_gaos/types/environments/getenvironmentfilesresponse.py +++ b/google/genai/_gaos/types/environments/getenvironmentfilesresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .environmentfile import EnvironmentFile, EnvironmentFileTypedDict from pydantic import model_serializer from typing import List, Optional @@ -56,17 +61,34 @@ class GetEnvironmentFilesResponse(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["files", "next_page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/environments/listenvironmentsresponse.py b/google/genai/_gaos/types/environments/listenvironmentsresponse.py index 4eb4a1da1..64dcfa9d4 100644 --- a/google/genai/_gaos/types/environments/listenvironmentsresponse.py +++ b/google/genai/_gaos/types/environments/listenvironmentsresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .environment import Environment, EnvironmentTypedDict from pydantic import model_serializer from typing import List, Optional @@ -44,17 +49,34 @@ class ListEnvironmentsResponse(BaseModel): r"""Pagination token.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["environments", "next_page_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/allowedtools.py b/google/genai/_gaos/types/interactions/allowedtools.py index 1ec5733d1..ca04fe09c 100644 --- a/google/genai/_gaos/types/interactions/allowedtools.py +++ b/google/genai/_gaos/types/interactions/allowedtools.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .toolchoicetype import ToolChoiceType from pydantic import model_serializer from typing import List, Optional @@ -42,17 +47,34 @@ class AllowedTools(BaseModel): r"""The names of the allowed tools.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["mode", "tools"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/allowlistentry.py b/google/genai/_gaos/types/interactions/allowlistentry.py index 324c8b4ec..6860bc31e 100644 --- a/google/genai/_gaos/types/interactions/allowlistentry.py +++ b/google/genai/_gaos/types/interactions/allowlistentry.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Dict, List, Optional, Union from typing_extensions import NotRequired, TypeAliasType, TypedDict @@ -62,17 +67,34 @@ class AllowlistEntry(BaseModel): r"""Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["credential", "transform"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/annotation.py b/google/genai/_gaos/types/interactions/annotation.py index ab69453b7..c306040e8 100644 --- a/google/genai/_gaos/types/interactions/annotation.py +++ b/google/genai/_gaos/types/interactions/annotation.py @@ -26,7 +26,7 @@ from .urlcitation import URLCitation, URLCitationParam from .wordinfo import WordInfo, WordInfoParam from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -54,6 +54,10 @@ class UnknownAnnotation(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _ANNOTATION_VARIANTS: dict[str, Any] = { "file_citation": FileCitation, diff --git a/google/genai/_gaos/types/interactions/antigravityagentconfig.py b/google/genai/_gaos/types/interactions/antigravityagentconfig.py index b6fcab998..9aae23880 100644 --- a/google/genai/_gaos/types/interactions/antigravityagentconfig.py +++ b/google/genai/_gaos/types/interactions/antigravityagentconfig.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import serialize_int, validate_const, validate_int +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_serializers import PlainSerializer from pydantic.functional_validators import AfterValidator, BeforeValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -64,19 +69,39 @@ class AntigravityAgentConfig(BaseModel): pydantic.Field(alias="type"), ] = "antigravity" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["max_total_tokens", "model"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/argumentsdelta.py b/google/genai/_gaos/types/interactions/argumentsdelta.py index 391ccb9d2..df7d28160 100644 --- a/google/genai/_gaos/types/interactions/argumentsdelta.py +++ b/google/genai/_gaos/types/interactions/argumentsdelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -43,19 +48,39 @@ class ArgumentsDelta(BaseModel): pydantic.Field(alias="type"), ] = "arguments_delta" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["arguments"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/audiocontent.py b/google/genai/_gaos/types/interactions/audiocontent.py index 6270ce303..f7b645d06 100644 --- a/google/genai/_gaos/types/interactions/audiocontent.py +++ b/google/genai/_gaos/types/interactions/audiocontent.py @@ -24,12 +24,19 @@ BaseModel, UNSET_SENTINEL, UnrecognizedStr, + current_exclude_none, + serialize_with_info, ) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -93,19 +100,39 @@ class AudioContent(BaseModel): uri: Optional[str] = None r"""The URI of the audio.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["channels", "data", "mime_type", "sample_rate", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/audiodelta.py b/google/genai/_gaos/types/interactions/audiodelta.py index d6495a542..c7aecb27e 100644 --- a/google/genai/_gaos/types/interactions/audiodelta.py +++ b/google/genai/_gaos/types/interactions/audiodelta.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -86,21 +97,41 @@ class AudioDelta(BaseModel): uri: Optional[str] = None + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["channels", "data", "mime_type", "rate", "sample_rate", "uri"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/audioresponseformat.py b/google/genai/_gaos/types/interactions/audioresponseformat.py index 972b9e3ff..d151a1368 100644 --- a/google/genai/_gaos/types/interactions/audioresponseformat.py +++ b/google/genai/_gaos/types/interactions/audioresponseformat.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -89,19 +100,39 @@ class AudioResponseFormat(BaseModel): pydantic.Field(alias="type"), ] = "audio" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["bit_rate", "delivery", "mime_type", "sample_rate"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/codeexecution.py b/google/genai/_gaos/types/interactions/codeexecution.py index d0261e37d..eb6ef3131 100644 --- a/google/genai/_gaos/types/interactions/codeexecution.py +++ b/google/genai/_gaos/types/interactions/codeexecution.py @@ -22,7 +22,7 @@ from ...utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator -from typing import Literal +from typing import Any, Literal from typing_extensions import Annotated, TypedDict @@ -42,6 +42,9 @@ class CodeExecution(BaseModel): pydantic.Field(alias="type"), ] = "code_execution" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: CodeExecution.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/codeexecutioncallarguments.py b/google/genai/_gaos/types/interactions/codeexecutioncallarguments.py index 32022ebfb..74a002293 100644 --- a/google/genai/_gaos/types/interactions/codeexecutioncallarguments.py +++ b/google/genai/_gaos/types/interactions/codeexecutioncallarguments.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -53,17 +64,34 @@ class CodeExecutionCallArguments(BaseModel): r"""Programming language of the `code`.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["code", "language"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/codeexecutioncalldelta.py b/google/genai/_gaos/types/interactions/codeexecutioncalldelta.py index 9d6c95f62..88aab0f2d 100644 --- a/google/genai/_gaos/types/interactions/codeexecutioncalldelta.py +++ b/google/genai/_gaos/types/interactions/codeexecutioncalldelta.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .codeexecutioncallarguments import ( CodeExecutionCallArguments, CodeExecutionCallArgumentsParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +59,39 @@ class CodeExecutionCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "code_execution_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/codeexecutioncallstep.py b/google/genai/_gaos/types/interactions/codeexecutioncallstep.py index 0d31938a8..5c2fc7ad0 100644 --- a/google/genai/_gaos/types/interactions/codeexecutioncallstep.py +++ b/google/genai/_gaos/types/interactions/codeexecutioncallstep.py @@ -18,8 +18,20 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .codeexecutioncallarguments import ( CodeExecutionCallArguments, CodeExecutionCallArgumentsParam, @@ -27,7 +39,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -63,19 +75,39 @@ class CodeExecutionCallStep(BaseModel): pydantic.Field(alias="type"), ] = "code_execution_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/codeexecutionresultdelta.py b/google/genai/_gaos/types/interactions/codeexecutionresultdelta.py index d014d8367..291238ce2 100644 --- a/google/genai/_gaos/types/interactions/codeexecutionresultdelta.py +++ b/google/genai/_gaos/types/interactions/codeexecutionresultdelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -51,19 +56,39 @@ class CodeExecutionResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "code_execution_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/codeexecutionresultstep.py b/google/genai/_gaos/types/interactions/codeexecutionresultstep.py index c506a2a81..a45e54e00 100644 --- a/google/genai/_gaos/types/interactions/codeexecutionresultstep.py +++ b/google/genai/_gaos/types/interactions/codeexecutionresultstep.py @@ -18,12 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -64,19 +76,39 @@ class CodeExecutionResultStep(BaseModel): pydantic.Field(alias="type"), ] = "code_execution_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/codemenderagentconfig.py b/google/genai/_gaos/types/interactions/codemenderagentconfig.py index cccaebd79..6c95b2699 100644 --- a/google/genai/_gaos/types/interactions/codemenderagentconfig.py +++ b/google/genai/_gaos/types/interactions/codemenderagentconfig.py @@ -18,15 +18,20 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .findrequest import FindRequest, FindRequestParam from .fixrequest import FixRequest, FixRequestParam from .sessionconfig import SessionConfig, SessionConfigParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -87,21 +92,41 @@ class CodeMenderAgentConfig(BaseModel): pydantic.Field(alias="type"), ] = "code-mender" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["find_request", "fix_request", "model", "session_config", "session_id"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/computeruse.py b/google/genai/_gaos/types/interactions/computeruse.py index fcee49797..19bd209e3 100644 --- a/google/genai/_gaos/types/interactions/computeruse.py +++ b/google/genai/_gaos/types/interactions/computeruse.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -92,7 +103,13 @@ class ComputerUse(BaseModel): pydantic.Field(alias="type"), ] = "computer_use" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -102,16 +119,30 @@ def serialize_model(self, handler): "excluded_predefined_functions", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/content.py b/google/genai/_gaos/types/interactions/content.py index 03a112a9e..fa39e0476 100644 --- a/google/genai/_gaos/types/interactions/content.py +++ b/google/genai/_gaos/types/interactions/content.py @@ -26,7 +26,7 @@ from .textcontent import TextContent, TextContentParam from .videocontent import VideoContent, VideoContentParam from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -54,6 +54,10 @@ class UnknownContent(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _CONTENT_VARIANTS: dict[str, Any] = { "audio": AudioContent, diff --git a/google/genai/_gaos/types/interactions/createagentinteraction.py b/google/genai/_gaos/types/interactions/createagentinteraction.py index 1a8907717..a9fd333e4 100644 --- a/google/genai/_gaos/types/interactions/createagentinteraction.py +++ b/google/genai/_gaos/types/interactions/createagentinteraction.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .agentoption import AgentOption from .antigravityagentconfig import AntigravityAgentConfig, AntigravityAgentConfigParam from .codemenderagentconfig import CodeMenderAgentConfig, CodeMenderAgentConfigParam @@ -235,6 +240,9 @@ class CreateAgentInteraction(BaseModel): r"""Message for configuring webhook events for a request.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -257,15 +265,29 @@ def serialize_model(self, handler): "webhook_config", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/createmodelinteraction.py b/google/genai/_gaos/types/interactions/createmodelinteraction.py index 8964a0c2b..e44cbacb8 100644 --- a/google/genai/_gaos/types/interactions/createmodelinteraction.py +++ b/google/genai/_gaos/types/interactions/createmodelinteraction.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .environment import Environment, EnvironmentParam from .generationconfig import GenerationConfig, GenerationConfigParam from .interactionsinput import InteractionsInput, InteractionsInputParam @@ -215,6 +220,9 @@ class CreateModelInteraction(BaseModel): r"""Message for configuring webhook events for a request.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self._serialize_model, handler, info) + def _serialize_model(self, handler): optional_fields = set( [ @@ -238,15 +246,29 @@ def _serialize_model(self, handler): "webhook_config", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/deepresearchagentconfig.py b/google/genai/_gaos/types/interactions/deepresearchagentconfig.py index 4eec35d91..7ecac2512 100644 --- a/google/genai/_gaos/types/interactions/deepresearchagentconfig.py +++ b/google/genai/_gaos/types/interactions/deepresearchagentconfig.py @@ -18,13 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .thinkingsummaries import ThinkingSummaries import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -80,7 +91,13 @@ class DeepResearchAgentConfig(BaseModel): visualization: Optional[Visualization] = None r"""Whether to include visualizations in the response.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -90,16 +107,30 @@ def serialize_model(self, handler): "visualization", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/documentcontent.py b/google/genai/_gaos/types/interactions/documentcontent.py index 565caf309..d16c40e9c 100644 --- a/google/genai/_gaos/types/interactions/documentcontent.py +++ b/google/genai/_gaos/types/interactions/documentcontent.py @@ -24,12 +24,19 @@ BaseModel, UNSET_SENTINEL, UnrecognizedStr, + current_exclude_none, + serialize_with_info, ) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -72,19 +79,39 @@ class DocumentContent(BaseModel): uri: Optional[str] = None r"""The URI of the document.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["data", "mime_type", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/documentdelta.py b/google/genai/_gaos/types/interactions/documentdelta.py index b2b957479..eb608e7e3 100644 --- a/google/genai/_gaos/types/interactions/documentdelta.py +++ b/google/genai/_gaos/types/interactions/documentdelta.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -55,19 +66,39 @@ class DocumentDelta(BaseModel): uri: Optional[str] = None + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["data", "mime_type", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/dynamicagentconfig.py b/google/genai/_gaos/types/interactions/dynamicagentconfig.py index dfbe21b35..c19a2feed 100644 --- a/google/genai/_gaos/types/interactions/dynamicagentconfig.py +++ b/google/genai/_gaos/types/interactions/dynamicagentconfig.py @@ -54,6 +54,9 @@ def additional_properties(self): def additional_properties(self, value): self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride] + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: DynamicAgentConfig.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/environment.py b/google/genai/_gaos/types/interactions/environment.py index 544fbf51c..534eb4360 100644 --- a/google/genai/_gaos/types/interactions/environment.py +++ b/google/genai/_gaos/types/interactions/environment.py @@ -18,8 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .environmentnetworkegressallowlist import ( EnvironmentNetworkEgressAllowlist, EnvironmentNetworkEgressAllowlistParam, @@ -29,7 +40,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Dict, List, Literal, Optional, Union +from typing import Any, Dict, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -90,19 +101,39 @@ class Environment(BaseModel): pydantic.Field(alias="type"), ] = "remote" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["env", "environment_id", "network", "sources"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/environmentnetworkegressallowlist.py b/google/genai/_gaos/types/interactions/environmentnetworkegressallowlist.py index d374d534d..3fd34fde1 100644 --- a/google/genai/_gaos/types/interactions/environmentnetworkegressallowlist.py +++ b/google/genai/_gaos/types/interactions/environmentnetworkegressallowlist.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .allowlistentry import AllowlistEntry, AllowlistEntryParam from pydantic import model_serializer from typing import List, Literal, Optional, Union @@ -60,17 +71,34 @@ class EnvironmentNetworkEgressAllowlist(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["allowlist"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/envvar.py b/google/genai/_gaos/types/interactions/envvar.py index 6605130c8..fe5b180cc 100644 --- a/google/genai/_gaos/types/interactions/envvar.py +++ b/google/genai/_gaos/types/interactions/envvar.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -43,17 +48,34 @@ class EnvVar(BaseModel): r"""Direct string value for plain environment variables.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["credential", "value"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/error.py b/google/genai/_gaos/types/interactions/error.py index 0653db1b5..c0c0f5028 100644 --- a/google/genai/_gaos/types/interactions/error.py +++ b/google/genai/_gaos/types/interactions/error.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -43,17 +48,34 @@ class Error(BaseModel): r"""A human-readable error message.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["code", "message"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/errorevent.py b/google/genai/_gaos/types/interactions/errorevent.py index a4b4e7600..66c5afc8f 100644 --- a/google/genai/_gaos/types/interactions/errorevent.py +++ b/google/genai/_gaos/types/interactions/errorevent.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .error import Error, ErrorTypedDict import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -52,19 +57,39 @@ class ErrorEvent(BaseModel): pydantic.Field(alias="event_type"), ] = "error" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["error", "event_id"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/exaaisearchconfig.py b/google/genai/_gaos/types/interactions/exaaisearchconfig.py index 214638d60..83a956e45 100644 --- a/google/genai/_gaos/types/interactions/exaaisearchconfig.py +++ b/google/genai/_gaos/types/interactions/exaaisearchconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Any, Dict, Optional from typing_extensions import NotRequired, TypedDict @@ -43,17 +48,34 @@ class ExaAISearchConfig(BaseModel): r"""Optional. This field can be used to pass any parameter from the Exa.ai Search API.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["custom_config"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filecitation.py b/google/genai/_gaos/types/interactions/filecitation.py index 14436c5de..879a348ac 100644 --- a/google/genai/_gaos/types/interactions/filecitation.py +++ b/google/genai/_gaos/types/interactions/filecitation.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator @@ -89,7 +94,13 @@ class FileCitation(BaseModel): pydantic.Field(alias="type"), ] = "file_citation" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -103,16 +114,30 @@ def serialize_model(self, handler): "start_index", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filecontent.py b/google/genai/_gaos/types/interactions/filecontent.py index f4f4e72f5..7352f297b 100644 --- a/google/genai/_gaos/types/interactions/filecontent.py +++ b/google/genai/_gaos/types/interactions/filecontent.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -43,17 +48,34 @@ class FileContent(BaseModel): r"""The relative path of the file from the project root.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["content", "path"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filesearch.py b/google/genai/_gaos/types/interactions/filesearch.py index 11e80c291..9c5a15b1f 100644 --- a/google/genai/_gaos/types/interactions/filesearch.py +++ b/google/genai/_gaos/types/interactions/filesearch.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -58,19 +63,39 @@ class FileSearch(BaseModel): pydantic.Field(alias="type"), ] = "file_search" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["file_search_store_names", "metadata_filter", "top_k"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filesearchcalldelta.py b/google/genai/_gaos/types/interactions/filesearchcalldelta.py index 259b72cd2..bf01ef0d3 100644 --- a/google/genai/_gaos/types/interactions/filesearchcalldelta.py +++ b/google/genai/_gaos/types/interactions/filesearchcalldelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -45,19 +50,39 @@ class FileSearchCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "file_search_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filesearchcallstep.py b/google/genai/_gaos/types/interactions/filesearchcallstep.py index 5d13a301c..23eb957ac 100644 --- a/google/genai/_gaos/types/interactions/filesearchcallstep.py +++ b/google/genai/_gaos/types/interactions/filesearchcallstep.py @@ -18,12 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +66,39 @@ class FileSearchCallStep(BaseModel): pydantic.Field(alias="type"), ] = "file_search_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filesearchresultdelta.py b/google/genai/_gaos/types/interactions/filesearchresultdelta.py index cf32e6bfb..445689724 100644 --- a/google/genai/_gaos/types/interactions/filesearchresultdelta.py +++ b/google/genai/_gaos/types/interactions/filesearchresultdelta.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .filesearchresult import FileSearchResult, FileSearchResultTypedDict import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -49,19 +54,39 @@ class FileSearchResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "file_search_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filesearchresultstep.py b/google/genai/_gaos/types/interactions/filesearchresultstep.py index d8496ddad..ea1c0d125 100644 --- a/google/genai/_gaos/types/interactions/filesearchresultstep.py +++ b/google/genai/_gaos/types/interactions/filesearchresultstep.py @@ -18,12 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +66,39 @@ class FileSearchResultStep(BaseModel): pydantic.Field(alias="type"), ] = "file_search_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/filter_.py b/google/genai/_gaos/types/interactions/filter_.py index a782b8a9f..22bf39a3e 100644 --- a/google/genai/_gaos/types/interactions/filter_.py +++ b/google/genai/_gaos/types/interactions/filter_.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -56,6 +61,9 @@ class Filter(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -64,15 +72,29 @@ def serialize_model(self, handler): "vector_similarity_threshold", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/findrequest.py b/google/genai/_gaos/types/interactions/findrequest.py index 0952b05a3..9cc3930f8 100644 --- a/google/genai/_gaos/types/interactions/findrequest.py +++ b/google/genai/_gaos/types/interactions/findrequest.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .filecontent import FileContent, FileContentParam from pydantic import model_serializer from typing import List, Literal, Optional, Union @@ -78,17 +89,34 @@ class FindRequest(BaseModel): r"""A list of source files to provide as context for the scan.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["description", "finding_id", "mode", "source_files"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/fixrequest.py b/google/genai/_gaos/types/interactions/fixrequest.py index 310b4fe4a..74a974bb2 100644 --- a/google/genai/_gaos/types/interactions/fixrequest.py +++ b/google/genai/_gaos/types/interactions/fixrequest.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .filecontent import FileContent, FileContentParam from pydantic import model_serializer from typing import List, Optional @@ -65,17 +70,34 @@ class FixRequest(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["description", "finding_id", "source_files"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/function.py b/google/genai/_gaos/types/interactions/function.py index 58e95ddfe..00cde6edd 100644 --- a/google/genai/_gaos/types/interactions/function.py +++ b/google/genai/_gaos/types/interactions/function.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator @@ -66,19 +71,39 @@ class Function(BaseModel): pydantic.Field(alias="type"), ] = "function" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["description", "name", "parameters"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/functioncallstep.py b/google/genai/_gaos/types/interactions/functioncallstep.py index 5f15e0d3e..b72ac5e0b 100644 --- a/google/genai/_gaos/types/interactions/functioncallstep.py +++ b/google/genai/_gaos/types/interactions/functioncallstep.py @@ -57,6 +57,9 @@ class FunctionCallStep(BaseModel): pydantic.Field(alias="type"), ] = "function_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: FunctionCallStep.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/functionresultdelta.py b/google/genai/_gaos/types/interactions/functionresultdelta.py index 48a900658..acc798efd 100644 --- a/google/genai/_gaos/types/interactions/functionresultdelta.py +++ b/google/genai/_gaos/types/interactions/functionresultdelta.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .functionresultsubcontent import ( FunctionResultSubcontent, FunctionResultSubcontentParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -73,19 +78,39 @@ class FunctionResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "function_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "name"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/functionresultstep.py b/google/genai/_gaos/types/interactions/functionresultstep.py index 615919c01..4055149dd 100644 --- a/google/genai/_gaos/types/interactions/functionresultstep.py +++ b/google/genai/_gaos/types/interactions/functionresultstep.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .functionresultsubcontent import ( FunctionResultSubcontent, FunctionResultSubcontentParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -90,19 +95,39 @@ class FunctionResultStep(BaseModel): pydantic.Field(alias="type"), ] = "function_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "name"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/functionresultsubcontent.py b/google/genai/_gaos/types/interactions/functionresultsubcontent.py index e49937d06..6cf51b21c 100644 --- a/google/genai/_gaos/types/interactions/functionresultsubcontent.py +++ b/google/genai/_gaos/types/interactions/functionresultsubcontent.py @@ -26,7 +26,7 @@ from .textcontent import TextContent, TextContentParam from .videocontent import VideoContent, VideoContentParam from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -53,6 +53,10 @@ class UnknownFunctionResultSubcontent(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _FUNCTION_RESULT_SUBCONTENT_VARIANTS: dict[str, Any] = { "audio": AudioContent, diff --git a/google/genai/_gaos/types/interactions/generationconfig.py b/google/genai/_gaos/types/interactions/generationconfig.py index e09a5bbd5..5eaa07563 100644 --- a/google/genai/_gaos/types/interactions/generationconfig.py +++ b/google/genai/_gaos/types/interactions/generationconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .imageconfig import ImageConfig, ImageConfigParam from .speakerconfig import SpeakerConfig, SpeakerConfigParam from .speechconfig import SpeechConfig, SpeechConfigParam @@ -136,6 +141,9 @@ class GenerationConfig(BaseModel): r"""Configuration options for video generation.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -153,15 +161,29 @@ def serialize_model(self, handler): "video_config", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemaps.py b/google/genai/_gaos/types/interactions/googlemaps.py index c209d0fd8..6a7b40e5a 100644 --- a/google/genai/_gaos/types/interactions/googlemaps.py +++ b/google/genai/_gaos/types/interactions/googlemaps.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -62,19 +67,39 @@ class GoogleMaps(BaseModel): pydantic.Field(alias="type"), ] = "google_maps" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["enable_widget", "latitude", "longitude"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapscallarguments.py b/google/genai/_gaos/types/interactions/googlemapscallarguments.py index 38c22b2b6..683b72291 100644 --- a/google/genai/_gaos/types/interactions/googlemapscallarguments.py +++ b/google/genai/_gaos/types/interactions/googlemapscallarguments.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class GoogleMapsCallArguments(BaseModel): r"""The queries to be executed.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["queries"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapscalldelta.py b/google/genai/_gaos/types/interactions/googlemapscalldelta.py index e7889eb12..f4ace47b4 100644 --- a/google/genai/_gaos/types/interactions/googlemapscalldelta.py +++ b/google/genai/_gaos/types/interactions/googlemapscalldelta.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlemapscallarguments import ( GoogleMapsCallArguments, GoogleMapsCallArgumentsParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +59,39 @@ class GoogleMapsCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "google_maps_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["arguments", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapscallstep.py b/google/genai/_gaos/types/interactions/googlemapscallstep.py index c3196e5a1..7c54e99c4 100644 --- a/google/genai/_gaos/types/interactions/googlemapscallstep.py +++ b/google/genai/_gaos/types/interactions/googlemapscallstep.py @@ -18,8 +18,20 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlemapscallarguments import ( GoogleMapsCallArguments, GoogleMapsCallArgumentsParam, @@ -27,7 +39,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -63,19 +75,39 @@ class GoogleMapsCallStep(BaseModel): pydantic.Field(alias="type"), ] = "google_maps_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["arguments", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapsresult.py b/google/genai/_gaos/types/interactions/googlemapsresult.py index 5bf4a538d..10c954ddb 100644 --- a/google/genai/_gaos/types/interactions/googlemapsresult.py +++ b/google/genai/_gaos/types/interactions/googlemapsresult.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlemapsresultplaces import GoogleMapsResultPlaces, GoogleMapsResultPlacesParam from pydantic import model_serializer from typing import List, Optional @@ -40,17 +45,34 @@ class GoogleMapsResult(BaseModel): widget_context_token: Optional[str] = None @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["places", "widget_context_token"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapsresultdelta.py b/google/genai/_gaos/types/interactions/googlemapsresultdelta.py index e5386db09..8238183a8 100644 --- a/google/genai/_gaos/types/interactions/googlemapsresultdelta.py +++ b/google/genai/_gaos/types/interactions/googlemapsresultdelta.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlemapsresult import GoogleMapsResult, GoogleMapsResultParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -51,19 +56,39 @@ class GoogleMapsResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "google_maps_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["result", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapsresultplaces.py b/google/genai/_gaos/types/interactions/googlemapsresultplaces.py index 8eef7b1a0..9ea595972 100644 --- a/google/genai/_gaos/types/interactions/googlemapsresultplaces.py +++ b/google/genai/_gaos/types/interactions/googlemapsresultplaces.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .reviewsnippet import ReviewSnippet, ReviewSnippetParam from pydantic import model_serializer from typing import List, Optional @@ -42,17 +47,34 @@ class GoogleMapsResultPlaces(BaseModel): url: Optional[str] = None @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["name", "place_id", "review_snippets", "url"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlemapsresultstep.py b/google/genai/_gaos/types/interactions/googlemapsresultstep.py index 950a02d64..fd8b2e909 100644 --- a/google/genai/_gaos/types/interactions/googlemapsresultstep.py +++ b/google/genai/_gaos/types/interactions/googlemapsresultstep.py @@ -18,13 +18,25 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlemapsresult import GoogleMapsResult, GoogleMapsResultParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -58,19 +70,39 @@ class GoogleMapsResultStep(BaseModel): pydantic.Field(alias="type"), ] = "google_maps_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearch.py b/google/genai/_gaos/types/interactions/googlesearch.py index b6779e6f3..319db2c9d 100644 --- a/google/genai/_gaos/types/interactions/googlesearch.py +++ b/google/genai/_gaos/types/interactions/googlesearch.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -58,19 +69,39 @@ class GoogleSearch(BaseModel): pydantic.Field(alias="type"), ] = "google_search" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["search_types"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearchcallarguments.py b/google/genai/_gaos/types/interactions/googlesearchcallarguments.py index 872c0194a..7896c4bed 100644 --- a/google/genai/_gaos/types/interactions/googlesearchcallarguments.py +++ b/google/genai/_gaos/types/interactions/googlesearchcallarguments.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class GoogleSearchCallArguments(BaseModel): r"""Web search queries for the following-up web search.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["queries"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearchcalldelta.py b/google/genai/_gaos/types/interactions/googlesearchcalldelta.py index d18fda78d..09fee7f83 100644 --- a/google/genai/_gaos/types/interactions/googlesearchcalldelta.py +++ b/google/genai/_gaos/types/interactions/googlesearchcalldelta.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlesearchcallarguments import ( GoogleSearchCallArguments, GoogleSearchCallArgumentsParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +59,39 @@ class GoogleSearchCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "google_search_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearchcallstep.py b/google/genai/_gaos/types/interactions/googlesearchcallstep.py index edbd7e02c..d9c25d787 100644 --- a/google/genai/_gaos/types/interactions/googlesearchcallstep.py +++ b/google/genai/_gaos/types/interactions/googlesearchcallstep.py @@ -24,8 +24,15 @@ BaseModel, UNSET_SENTINEL, UnrecognizedStr, + current_exclude_none, + serialize_with_info, ) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlesearchcallarguments import ( GoogleSearchCallArguments, GoogleSearchCallArgumentsParam, @@ -33,7 +40,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -85,19 +92,39 @@ class GoogleSearchCallStep(BaseModel): pydantic.Field(alias="type"), ] = "google_search_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["search_type", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearchresult.py b/google/genai/_gaos/types/interactions/googlesearchresult.py index e11a1c319..966eb6567 100644 --- a/google/genai/_gaos/types/interactions/googlesearchresult.py +++ b/google/genai/_gaos/types/interactions/googlesearchresult.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class GoogleSearchResult(BaseModel): r"""Web content snippet that can be embedded in a web page or an app webview.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["search_suggestions"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearchresultdelta.py b/google/genai/_gaos/types/interactions/googlesearchresultdelta.py index 92fb88bfc..be6b89357 100644 --- a/google/genai/_gaos/types/interactions/googlesearchresultdelta.py +++ b/google/genai/_gaos/types/interactions/googlesearchresultdelta.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlesearchresult import GoogleSearchResult, GoogleSearchResultParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -52,19 +57,39 @@ class GoogleSearchResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "google_search_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/googlesearchresultstep.py b/google/genai/_gaos/types/interactions/googlesearchresultstep.py index 1b6ebba0d..5ef273ef4 100644 --- a/google/genai/_gaos/types/interactions/googlesearchresultstep.py +++ b/google/genai/_gaos/types/interactions/googlesearchresultstep.py @@ -18,13 +18,25 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .googlesearchresult import GoogleSearchResult, GoogleSearchResultParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -65,19 +77,39 @@ class GoogleSearchResultStep(BaseModel): pydantic.Field(alias="type"), ] = "google_search_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/groundingtoolcount.py b/google/genai/_gaos/types/interactions/groundingtoolcount.py index 6bcd509f9..c2d546433 100644 --- a/google/genai/_gaos/types/interactions/groundingtoolcount.py +++ b/google/genai/_gaos/types/interactions/groundingtoolcount.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -54,17 +65,34 @@ class GroundingToolCount(BaseModel): r"""The grounding tool type associated with the count.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["count", "type"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/hybridsearch.py b/google/genai/_gaos/types/interactions/hybridsearch.py index 5c7f35094..9d0702acc 100644 --- a/google/genai/_gaos/types/interactions/hybridsearch.py +++ b/google/genai/_gaos/types/interactions/hybridsearch.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -42,17 +47,34 @@ class HybridSearch(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["alpha"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/imageconfig.py b/google/genai/_gaos/types/interactions/imageconfig.py index c5693c419..187b779e9 100644 --- a/google/genai/_gaos/types/interactions/imageconfig.py +++ b/google/genai/_gaos/types/interactions/imageconfig.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypedDict, deprecated @@ -104,17 +115,34 @@ class ImageConfig(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["aspect_ratio", "image_size"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/imagecontent.py b/google/genai/_gaos/types/interactions/imagecontent.py index 7429f286c..63efdc87c 100644 --- a/google/genai/_gaos/types/interactions/imagecontent.py +++ b/google/genai/_gaos/types/interactions/imagecontent.py @@ -24,13 +24,20 @@ BaseModel, UNSET_SENTINEL, UnrecognizedStr, + current_exclude_none, + serialize_with_info, ) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .mediaresolution import MediaResolution import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -82,19 +89,39 @@ class ImageContent(BaseModel): uri: Optional[str] = None r"""The URI of the image.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["data", "mime_type", "resolution", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/imagedelta.py b/google/genai/_gaos/types/interactions/imagedelta.py index 976a0787f..c98003249 100644 --- a/google/genai/_gaos/types/interactions/imagedelta.py +++ b/google/genai/_gaos/types/interactions/imagedelta.py @@ -18,13 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .mediaresolution import MediaResolution import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -65,19 +76,39 @@ class ImageDelta(BaseModel): uri: Optional[str] = None + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["data", "mime_type", "resolution", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/imageresponseformat.py b/google/genai/_gaos/types/interactions/imageresponseformat.py index 83be4f045..9e2b031c6 100644 --- a/google/genai/_gaos/types/interactions/imageresponseformat.py +++ b/google/genai/_gaos/types/interactions/imageresponseformat.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -109,19 +120,39 @@ class ImageResponseFormat(BaseModel): pydantic.Field(alias="type"), ] = "image" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["aspect_ratio", "delivery", "image_size", "mime_type"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/interaction.py b/google/genai/_gaos/types/interactions/interaction.py index 9cc629496..60c24d650 100644 --- a/google/genai/_gaos/types/interactions/interaction.py +++ b/google/genai/_gaos/types/interactions/interaction.py @@ -18,8 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils.unions import parse_open_union +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .agentoption import AgentOption from .antigravityagentconfig import AntigravityAgentConfig, AntigravityAgentConfigParam from .audiocontent import AudioContent, AudioContentParam @@ -73,6 +84,10 @@ class UnknownInteractionAgentConfig(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _INTERACTION_AGENT_CONFIG_VARIANTS: dict[str, Any] = { "antigravity": AntigravityAgentConfig, @@ -385,6 +400,9 @@ class Interaction(BaseModel): r"""Message for configuring webhook events for a request.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self._serialize_model, handler, info) + def _serialize_model(self, handler): optional_fields = set( [ @@ -420,16 +438,30 @@ def _serialize_model(self, handler): "webhook_config", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/interactioncompletedevent.py b/google/genai/_gaos/types/interactions/interactioncompletedevent.py index 5e3b8fd34..8dadfa00e 100644 --- a/google/genai/_gaos/types/interactions/interactioncompletedevent.py +++ b/google/genai/_gaos/types/interactions/interactioncompletedevent.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .interactionsseeventinteraction import ( InteractionSseEventInteraction, InteractionSseEventInteractionTypedDict, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -76,19 +81,39 @@ class InteractionCompletedEvent(BaseModel): pydantic.Field(alias="event_type"), ] = "interaction.completed" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["event_id"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/interactioncreatedevent.py b/google/genai/_gaos/types/interactions/interactioncreatedevent.py index 0d94d4ae2..984a7eaa6 100644 --- a/google/genai/_gaos/types/interactions/interactioncreatedevent.py +++ b/google/genai/_gaos/types/interactions/interactioncreatedevent.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .interactionsseeventinteraction import ( InteractionSseEventInteraction, InteractionSseEventInteractionTypedDict, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -70,19 +75,39 @@ class InteractionCreatedEvent(BaseModel): pydantic.Field(alias="event_type"), ] = "interaction.created" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["event_id"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/interactionsinput.py b/google/genai/_gaos/types/interactions/interactionsinput.py index 880afbd7c..8b41d0d04 100644 --- a/google/genai/_gaos/types/interactions/interactionsinput.py +++ b/google/genai/_gaos/types/interactions/interactionsinput.py @@ -18,10 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations +from ...utils.unions import dispatch_open_union_members from .content import Content, ContentParam from .step import Step, StepParam +from functools import partial +import pydantic from typing import List, Union -from typing_extensions import TypeAliasType +from typing_extensions import Annotated, TypeAliasType InteractionsInputParam = TypeAliasType( @@ -32,6 +35,15 @@ InteractionsInput = TypeAliasType( - "InteractionsInput", Union[Content, List[Step], List[Content], str] + "InteractionsInput", + Annotated[ + Union[Content, List[Step], List[Content], str], + pydantic.WrapValidator( + partial( + dispatch_open_union_members, + members=(Content, List[Step], List[Content]), + ) + ), + ], ) r"""The input for the interaction.""" diff --git a/google/genai/_gaos/types/interactions/interactionsseevent.py b/google/genai/_gaos/types/interactions/interactionsseevent.py index c8d8fe115..3a6fc57ed 100644 --- a/google/genai/_gaos/types/interactions/interactionsseevent.py +++ b/google/genai/_gaos/types/interactions/interactionsseevent.py @@ -37,7 +37,7 @@ from .stepstart import StepStart, StepStartTypedDict from .stepstop import StepStop, StepStopTypedDict from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -66,6 +66,10 @@ class UnknownInteractionSSEEvent(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _INTERACTION_SSE_EVENT_VARIANTS: dict[str, Any] = { "error": ErrorEvent, diff --git a/google/genai/_gaos/types/interactions/interactionsseeventinteraction.py b/google/genai/_gaos/types/interactions/interactionsseeventinteraction.py index 255434c05..04b98b837 100644 --- a/google/genai/_gaos/types/interactions/interactionsseeventinteraction.py +++ b/google/genai/_gaos/types/interactions/interactionsseeventinteraction.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .servicetier import ServiceTier from .step import Step, StepParam from .usage import Usage, UsageTypedDict @@ -114,6 +125,9 @@ class InteractionSseEventInteraction(BaseModel): r"""Statistics on the interaction request's token usage.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -128,15 +142,29 @@ def serialize_model(self, handler): "usage", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/interactionstatusupdate.py b/google/genai/_gaos/types/interactions/interactionstatusupdate.py index c89817089..3d4433917 100644 --- a/google/genai/_gaos/types/interactions/interactionstatusupdate.py +++ b/google/genai/_gaos/types/interactions/interactionstatusupdate.py @@ -18,13 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .usage import Usage, UsageTypedDict import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -86,19 +97,39 @@ class InteractionStatusUpdate(BaseModel): usage: Optional[Usage] = None r"""Statistics on the interaction request's token usage.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["continuation_token", "event_id", "usage"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/mcpserver.py b/google/genai/_gaos/types/interactions/mcpserver.py index 58ed06628..567a76b90 100644 --- a/google/genai/_gaos/types/interactions/mcpserver.py +++ b/google/genai/_gaos/types/interactions/mcpserver.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .allowedtools import AllowedTools, AllowedToolsParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Dict, List, Literal, Optional +from typing import Any, Dict, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -66,19 +71,39 @@ class MCPServer(BaseModel): Example: \"https://api.example.com/mcp\" """ + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["allowed_tools", "headers", "name", "url"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/mcpservertoolcalldelta.py b/google/genai/_gaos/types/interactions/mcpservertoolcalldelta.py index 30d29b03d..26e889976 100644 --- a/google/genai/_gaos/types/interactions/mcpservertoolcalldelta.py +++ b/google/genai/_gaos/types/interactions/mcpservertoolcalldelta.py @@ -48,6 +48,9 @@ class MCPServerToolCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "mcp_server_tool_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: MCPServerToolCallDelta.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/mcpservertoolcallstep.py b/google/genai/_gaos/types/interactions/mcpservertoolcallstep.py index 20c120ffd..e6e56f7be 100644 --- a/google/genai/_gaos/types/interactions/mcpservertoolcallstep.py +++ b/google/genai/_gaos/types/interactions/mcpservertoolcallstep.py @@ -63,6 +63,9 @@ class MCPServerToolCallStep(BaseModel): pydantic.Field(alias="type"), ] = "mcp_server_tool_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: MCPServerToolCallStep.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/mcpservertoolresultdelta.py b/google/genai/_gaos/types/interactions/mcpservertoolresultdelta.py index 36ad15957..c33bef541 100644 --- a/google/genai/_gaos/types/interactions/mcpservertoolresultdelta.py +++ b/google/genai/_gaos/types/interactions/mcpservertoolresultdelta.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .functionresultsubcontent import ( FunctionResultSubcontent, FunctionResultSubcontentParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -77,19 +82,39 @@ class MCPServerToolResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "mcp_server_tool_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["name", "server_name"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/mcpservertoolresultstep.py b/google/genai/_gaos/types/interactions/mcpservertoolresultstep.py index e13bd89e7..9ac101739 100644 --- a/google/genai/_gaos/types/interactions/mcpservertoolresultstep.py +++ b/google/genai/_gaos/types/interactions/mcpservertoolresultstep.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .functionresultsubcontent import ( FunctionResultSubcontent, FunctionResultSubcontentParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -90,19 +95,39 @@ class MCPServerToolResultStep(BaseModel): pydantic.Field(alias="type"), ] = "mcp_server_tool_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["name", "server_name"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/modalitytokens.py b/google/genai/_gaos/types/interactions/modalitytokens.py index b986c54c5..623646f92 100644 --- a/google/genai/_gaos/types/interactions/modalitytokens.py +++ b/google/genai/_gaos/types/interactions/modalitytokens.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .responsemodality import ResponseModality from pydantic import model_serializer from typing import Optional @@ -42,17 +47,34 @@ class ModalityTokens(BaseModel): r"""Number of tokens for the modality.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["modality", "tokens"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/modeloutputstep.py b/google/genai/_gaos/types/interactions/modeloutputstep.py index f3e2b8f2b..d2e39a198 100644 --- a/google/genai/_gaos/types/interactions/modeloutputstep.py +++ b/google/genai/_gaos/types/interactions/modeloutputstep.py @@ -18,14 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .content import Content, ContentParam from .status import Status, StatusParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -67,19 +72,39 @@ class ModelOutputStep(BaseModel): pydantic.Field(alias="type"), ] = "model_output" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["content", "error"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/parallelaisearchconfig.py b/google/genai/_gaos/types/interactions/parallelaisearchconfig.py index 6ddf716be..ba68e923f 100644 --- a/google/genai/_gaos/types/interactions/parallelaisearchconfig.py +++ b/google/genai/_gaos/types/interactions/parallelaisearchconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Any, Dict, Optional from typing_extensions import NotRequired, TypedDict @@ -43,17 +48,34 @@ class ParallelAISearchConfig(BaseModel): r"""Optional. Custom configs for ParallelAiSearch.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["api_key", "custom_config"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/placecitation.py b/google/genai/_gaos/types/interactions/placecitation.py index e60cfa594..625cbc72a 100644 --- a/google/genai/_gaos/types/interactions/placecitation.py +++ b/google/genai/_gaos/types/interactions/placecitation.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .reviewsnippet import ReviewSnippet, ReviewSnippetParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -84,21 +89,41 @@ class PlaceCitation(BaseModel): url: Optional[str] = None r"""URI reference of the place.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["end_index", "name", "place_id", "review_snippets", "start_index", "url"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/processingcalldelta.py b/google/genai/_gaos/types/interactions/processingcalldelta.py index 8c82116ff..46f4f31f7 100644 --- a/google/genai/_gaos/types/interactions/processingcalldelta.py +++ b/google/genai/_gaos/types/interactions/processingcalldelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -49,19 +54,39 @@ class ProcessingCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "processing_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/processingcallstep.py b/google/genai/_gaos/types/interactions/processingcallstep.py index 2d17ec6a9..1e35802bb 100644 --- a/google/genai/_gaos/types/interactions/processingcallstep.py +++ b/google/genai/_gaos/types/interactions/processingcallstep.py @@ -18,12 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -58,19 +70,39 @@ class ProcessingCallStep(BaseModel): pydantic.Field(alias="type"), ] = "processing_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/processingresultdelta.py b/google/genai/_gaos/types/interactions/processingresultdelta.py index e65c6869e..c0d0ac021 100644 --- a/google/genai/_gaos/types/interactions/processingresultdelta.py +++ b/google/genai/_gaos/types/interactions/processingresultdelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -49,19 +54,39 @@ class ProcessingResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "processing_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/processingresultstep.py b/google/genai/_gaos/types/interactions/processingresultstep.py index 77796e0cf..b7e069051 100644 --- a/google/genai/_gaos/types/interactions/processingresultstep.py +++ b/google/genai/_gaos/types/interactions/processingresultstep.py @@ -18,12 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +66,39 @@ class ProcessingResultStep(BaseModel): pydantic.Field(alias="type"), ] = "processing_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/ragresource.py b/google/genai/_gaos/types/interactions/ragresource.py index f793e548e..c383a8708 100644 --- a/google/genai/_gaos/types/interactions/ragresource.py +++ b/google/genai/_gaos/types/interactions/ragresource.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -47,17 +52,34 @@ class RagResource(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["rag_corpus", "rag_file_ids"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/ragretrievalconfig.py b/google/genai/_gaos/types/interactions/ragretrievalconfig.py index b25460153..0204c013d 100644 --- a/google/genai/_gaos/types/interactions/ragretrievalconfig.py +++ b/google/genai/_gaos/types/interactions/ragretrievalconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .filter_ import Filter, FilterParam from .hybridsearch import HybridSearch, HybridSearchParam from .ranking import Ranking, RankingParam @@ -57,18 +62,35 @@ class RagRetrievalConfig(BaseModel): r"""Optional. The number of contexts to retrieve.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["filter", "hybrid_search", "ranking", "top_k"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/ragstoreconfig.py b/google/genai/_gaos/types/interactions/ragstoreconfig.py index ec46283df..91f1bc48c 100644 --- a/google/genai/_gaos/types/interactions/ragstoreconfig.py +++ b/google/genai/_gaos/types/interactions/ragstoreconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .ragresource import RagResource, RagResourceParam from .ragretrievalconfig import RagRetrievalConfig, RagRetrievalConfigParam import pydantic @@ -66,6 +71,9 @@ class RagStoreConfig(BaseModel): r"""Optional. Only return results with vector distance smaller than the threshold.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -75,15 +83,29 @@ def serialize_model(self, handler): "vector_distance_threshold", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/ranking.py b/google/genai/_gaos/types/interactions/ranking.py index da27eb849..27056677a 100644 --- a/google/genai/_gaos/types/interactions/ranking.py +++ b/google/genai/_gaos/types/interactions/ranking.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .rankservice import RankService, RankServiceParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +59,39 @@ class Ranking(BaseModel): pydantic.Field(alias="ranking_config"), ] = "rank_service" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["ranking_config"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["model_name", "rank_service"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/rankservice.py b/google/genai/_gaos/types/interactions/rankservice.py index 61043a8b3..27f93bc16 100644 --- a/google/genai/_gaos/types/interactions/rankservice.py +++ b/google/genai/_gaos/types/interactions/rankservice.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class RankService(BaseModel): r"""Optional. The model name of the rank service.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["model_name"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/retrieval.py b/google/genai/_gaos/types/interactions/retrieval.py index f89fbb6af..610c6aaa3 100644 --- a/google/genai/_gaos/types/interactions/retrieval.py +++ b/google/genai/_gaos/types/interactions/retrieval.py @@ -18,8 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .exaaisearchconfig import ExaAISearchConfig, ExaAISearchConfigParam from .parallelaisearchconfig import ParallelAISearchConfig, ParallelAISearchConfigParam from .ragstoreconfig import RagStoreConfig, RagStoreConfigParam @@ -27,7 +38,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -81,7 +92,13 @@ class Retrieval(BaseModel): vertex_ai_search_config: Optional[VertexAISearchConfig] = None r"""Used to specify configuration for VertexAISearch.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -92,16 +109,30 @@ def serialize_model(self, handler): "vertex_ai_search_config", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/retrievalcallarguments.py b/google/genai/_gaos/types/interactions/retrievalcallarguments.py index f73c5ad1c..54897fcc4 100644 --- a/google/genai/_gaos/types/interactions/retrievalcallarguments.py +++ b/google/genai/_gaos/types/interactions/retrievalcallarguments.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class RetrievalCallArguments(BaseModel): r"""Queries for Retrieval information.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["queries"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/retrievalcalldelta.py b/google/genai/_gaos/types/interactions/retrievalcalldelta.py index 484f8fe3a..55b899595 100644 --- a/google/genai/_gaos/types/interactions/retrievalcalldelta.py +++ b/google/genai/_gaos/types/interactions/retrievalcalldelta.py @@ -18,13 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .retrievalcallarguments import RetrievalCallArguments, RetrievalCallArgumentsParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -75,19 +86,39 @@ class RetrievalCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "retrieval_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["retrieval_type", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/retrievalcallstep.py b/google/genai/_gaos/types/interactions/retrievalcallstep.py index fc8ce47d3..8d16a85c9 100644 --- a/google/genai/_gaos/types/interactions/retrievalcallstep.py +++ b/google/genai/_gaos/types/interactions/retrievalcallstep.py @@ -24,13 +24,20 @@ BaseModel, UNSET_SENTINEL, UnrecognizedStr, + current_exclude_none, + serialize_with_info, ) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .retrievalcallarguments import RetrievalCallArguments, RetrievalCallArgumentsParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -88,19 +95,39 @@ class RetrievalCallStep(BaseModel): pydantic.Field(alias="type"), ] = "retrieval_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["retrieval_type", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/retrievalresultdelta.py b/google/genai/_gaos/types/interactions/retrievalresultdelta.py index b770b9292..f45bbc591 100644 --- a/google/genai/_gaos/types/interactions/retrievalresultdelta.py +++ b/google/genai/_gaos/types/interactions/retrievalresultdelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -60,19 +65,39 @@ class RetrievalResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "retrieval_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/retrievalresultstep.py b/google/genai/_gaos/types/interactions/retrievalresultstep.py index 4420d21a3..231afa29f 100644 --- a/google/genai/_gaos/types/interactions/retrievalresultstep.py +++ b/google/genai/_gaos/types/interactions/retrievalresultstep.py @@ -18,12 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -65,19 +77,39 @@ class RetrievalResultStep(BaseModel): pydantic.Field(alias="type"), ] = "retrieval_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/reviewsnippet.py b/google/genai/_gaos/types/interactions/reviewsnippet.py index 566556a90..456e56f72 100644 --- a/google/genai/_gaos/types/interactions/reviewsnippet.py +++ b/google/genai/_gaos/types/interactions/reviewsnippet.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -52,17 +57,34 @@ class ReviewSnippet(BaseModel): r"""A link that corresponds to the user review on Google Maps.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["review_id", "title", "url"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/safetysetting.py b/google/genai/_gaos/types/interactions/safetysetting.py index d92385fc6..9cbf14764 100644 --- a/google/genai/_gaos/types/interactions/safetysetting.py +++ b/google/genai/_gaos/types/interactions/safetysetting.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .harmcategory import HarmCategory from pydantic import model_serializer from typing import Literal, Optional, Union @@ -94,17 +105,34 @@ class SafetySetting(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["method"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/sessionconfig.py b/google/genai/_gaos/types/interactions/sessionconfig.py index 0c651366c..e77d9d188 100644 --- a/google/genai/_gaos/types/interactions/sessionconfig.py +++ b/google/genai/_gaos/types/interactions/sessionconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -42,17 +47,34 @@ class SessionConfig(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["max_rounds"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/smarttranscriptionmode.py b/google/genai/_gaos/types/interactions/smarttranscriptionmode.py index 6dac77ae8..70e489e1b 100644 --- a/google/genai/_gaos/types/interactions/smarttranscriptionmode.py +++ b/google/genai/_gaos/types/interactions/smarttranscriptionmode.py @@ -22,7 +22,7 @@ from ...utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator -from typing import Literal +from typing import Any, Literal from typing_extensions import Annotated, TypedDict @@ -40,6 +40,9 @@ class SmartTranscriptionMode(BaseModel): pydantic.Field(alias="type"), ] = "smart" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: SmartTranscriptionMode.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/source.py b/google/genai/_gaos/types/interactions/source.py index 844f15bf4..2434ecaa9 100644 --- a/google/genai/_gaos/types/interactions/source.py +++ b/google/genai/_gaos/types/interactions/source.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -73,17 +84,34 @@ class Source(BaseModel): type: Optional[SourceType] = None @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["content", "encoding", "source", "target", "type"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/speakerconfig.py b/google/genai/_gaos/types/interactions/speakerconfig.py index 2affff381..169e3f958 100644 --- a/google/genai/_gaos/types/interactions/speakerconfig.py +++ b/google/genai/_gaos/types/interactions/speakerconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .speechconfig import SpeechConfig, SpeechConfigParam from pydantic import model_serializer from typing import List, Optional @@ -39,17 +44,34 @@ class SpeakerConfig(BaseModel): r"""Individual speaker configurations.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["speakers"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/speechannotation.py b/google/genai/_gaos/types/interactions/speechannotation.py index 69080ddc6..b9a14b739 100644 --- a/google/genai/_gaos/types/interactions/speechannotation.py +++ b/google/genai/_gaos/types/interactions/speechannotation.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -70,19 +75,39 @@ class SpeechAnnotation(BaseModel): pydantic.Field(alias="type"), ] = "speech_metadata" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["end_index", "speaker", "start_index", "style"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/speechconfig.py b/google/genai/_gaos/types/interactions/speechconfig.py index fd31a1505..b3251a184 100644 --- a/google/genai/_gaos/types/interactions/speechconfig.py +++ b/google/genai/_gaos/types/interactions/speechconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -48,17 +53,34 @@ class SpeechConfig(BaseModel): r"""The voice of the speaker.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["language", "speaker", "voice"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/staticmediaprocessing.py b/google/genai/_gaos/types/interactions/staticmediaprocessing.py index 249abb205..1b561f23b 100644 --- a/google/genai/_gaos/types/interactions/staticmediaprocessing.py +++ b/google/genai/_gaos/types/interactions/staticmediaprocessing.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -62,19 +67,39 @@ class StaticMediaProcessing(BaseModel): pydantic.Field(alias="type"), ] = "static" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["end_offset", "fps", "start_offset"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/status.py b/google/genai/_gaos/types/interactions/status.py index d3bbeaad0..9baf870eb 100644 --- a/google/genai/_gaos/types/interactions/status.py +++ b/google/genai/_gaos/types/interactions/status.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Any, Dict, List, Optional from typing_extensions import NotRequired, TypedDict @@ -72,17 +77,34 @@ class Status(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["code", "details", "message"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/step.py b/google/genai/_gaos/types/interactions/step.py index 51a3d63b6..8359ddbc7 100644 --- a/google/genai/_gaos/types/interactions/step.py +++ b/google/genai/_gaos/types/interactions/step.py @@ -48,7 +48,7 @@ from .urlcontextresultstep import URLContextResultStep, URLContextResultStepParam from .userinputstep import UserInputStep, UserInputStepParam from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -92,6 +92,10 @@ class UnknownStep(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _STEP_VARIANTS: dict[str, Any] = { "code_execution_call": CodeExecutionCallStep, diff --git a/google/genai/_gaos/types/interactions/stepdelta.py b/google/genai/_gaos/types/interactions/stepdelta.py index 3cce32247..8fb9e6ec0 100644 --- a/google/genai/_gaos/types/interactions/stepdelta.py +++ b/google/genai/_gaos/types/interactions/stepdelta.py @@ -18,14 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .stepdeltadata import StepDeltaData, StepDeltaDataTypedDict from .stepdeltametadata import StepDeltaMetadata, StepDeltaMetadataTypedDict import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -59,19 +64,39 @@ class StepDelta(BaseModel): metadata: Optional[StepDeltaMetadata] = None r"""Optional metadata accompanying ANY streamed event.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["event_id", "metadata"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/stepdeltadata.py b/google/genai/_gaos/types/interactions/stepdeltadata.py index 08d381112..998d3e44a 100644 --- a/google/genai/_gaos/types/interactions/stepdeltadata.py +++ b/google/genai/_gaos/types/interactions/stepdeltadata.py @@ -62,7 +62,7 @@ from .urlcontextresultdelta import URLContextResultDelta, URLContextResultDeltaTypedDict from .videodelta import VideoDelta, VideoDeltaTypedDict from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -110,6 +110,10 @@ class UnknownStepDeltaData(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _STEP_DELTA_DATA_VARIANTS: dict[str, Any] = { "arguments_delta": ArgumentsDelta, diff --git a/google/genai/_gaos/types/interactions/stepdeltametadata.py b/google/genai/_gaos/types/interactions/stepdeltametadata.py index c420a1e19..70276f316 100644 --- a/google/genai/_gaos/types/interactions/stepdeltametadata.py +++ b/google/genai/_gaos/types/interactions/stepdeltametadata.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .usage import Usage, UsageTypedDict from pydantic import model_serializer from typing import Optional @@ -39,17 +44,34 @@ class StepDeltaMetadata(BaseModel): r"""Statistics on the interaction request's token usage.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["total_usage"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/stepstart.py b/google/genai/_gaos/types/interactions/stepstart.py index 9d0476e43..3e359092c 100644 --- a/google/genai/_gaos/types/interactions/stepstart.py +++ b/google/genai/_gaos/types/interactions/stepstart.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .step import Step, StepParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -55,19 +60,39 @@ class StepStart(BaseModel): pydantic.Field(alias="event_type"), ] = "step.start" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["event_id"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/stepstop.py b/google/genai/_gaos/types/interactions/stepstop.py index 7f8191f0f..f8017a24b 100644 --- a/google/genai/_gaos/types/interactions/stepstop.py +++ b/google/genai/_gaos/types/interactions/stepstop.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .usage import Usage, UsageTypedDict import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -60,19 +65,39 @@ class StepStop(BaseModel): usage: Optional[Usage] = None r"""Statistics on the interaction request's token usage.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["event_type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["event_id", "step_usage", "usage"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/textannotationdelta.py b/google/genai/_gaos/types/interactions/textannotationdelta.py index 94a1aaca3..7b282a6de 100644 --- a/google/genai/_gaos/types/interactions/textannotationdelta.py +++ b/google/genai/_gaos/types/interactions/textannotationdelta.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .annotation import Annotation, AnnotationParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -46,19 +51,39 @@ class TextAnnotationDelta(BaseModel): pydantic.Field(alias="type"), ] = "text_annotation_delta" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["annotations"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/textcontent.py b/google/genai/_gaos/types/interactions/textcontent.py index 533d06fd9..9839cf79b 100644 --- a/google/genai/_gaos/types/interactions/textcontent.py +++ b/google/genai/_gaos/types/interactions/textcontent.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .annotation import Annotation, AnnotationParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -52,19 +57,39 @@ class TextContent(BaseModel): pydantic.Field(alias="type"), ] = "text" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["annotations"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/textdelta.py b/google/genai/_gaos/types/interactions/textdelta.py index c0ec2cd55..ddd5420f8 100644 --- a/google/genai/_gaos/types/interactions/textdelta.py +++ b/google/genai/_gaos/types/interactions/textdelta.py @@ -22,7 +22,7 @@ from ...utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator -from typing import Literal +from typing import Any, Literal from typing_extensions import Annotated, TypedDict @@ -39,6 +39,9 @@ class TextDelta(BaseModel): pydantic.Field(alias="type"), ] = "text" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: TextDelta.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/textresponseformat.py b/google/genai/_gaos/types/interactions/textresponseformat.py index c4160fad8..c966ca3da 100644 --- a/google/genai/_gaos/types/interactions/textresponseformat.py +++ b/google/genai/_gaos/types/interactions/textresponseformat.py @@ -18,8 +18,19 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator @@ -79,19 +90,39 @@ class TextResponseFormat(BaseModel): pydantic.Field(alias="type"), ] = "text" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["mime_type", "schema"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/thoughtsignaturedelta.py b/google/genai/_gaos/types/interactions/thoughtsignaturedelta.py index 58733ab87..46b1ee781 100644 --- a/google/genai/_gaos/types/interactions/thoughtsignaturedelta.py +++ b/google/genai/_gaos/types/interactions/thoughtsignaturedelta.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -45,19 +50,39 @@ class ThoughtSignatureDelta(BaseModel): pydantic.Field(alias="type"), ] = "thought_signature" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/thoughtstep.py b/google/genai/_gaos/types/interactions/thoughtstep.py index f611c1320..6aaf68469 100644 --- a/google/genai/_gaos/types/interactions/thoughtstep.py +++ b/google/genai/_gaos/types/interactions/thoughtstep.py @@ -18,13 +18,25 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .thoughtsummarycontent import ThoughtSummaryContent, ThoughtSummaryContentParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -52,19 +64,39 @@ class ThoughtStep(BaseModel): pydantic.Field(alias="type"), ] = "thought" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature", "summary"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/thoughtsummarycontent.py b/google/genai/_gaos/types/interactions/thoughtsummarycontent.py index 951eb885f..505c4f191 100644 --- a/google/genai/_gaos/types/interactions/thoughtsummarycontent.py +++ b/google/genai/_gaos/types/interactions/thoughtsummarycontent.py @@ -23,7 +23,7 @@ from .imagecontent import ImageContent, ImageContentParam from .textcontent import TextContent, TextContentParam from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -43,6 +43,10 @@ class UnknownThoughtSummaryContent(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _THOUGHT_SUMMARY_CONTENT_VARIANTS: dict[str, Any] = { "image": ImageContent, diff --git a/google/genai/_gaos/types/interactions/thoughtsummarydelta.py b/google/genai/_gaos/types/interactions/thoughtsummarydelta.py index 824e56f2e..5ff07513a 100644 --- a/google/genai/_gaos/types/interactions/thoughtsummarydelta.py +++ b/google/genai/_gaos/types/interactions/thoughtsummarydelta.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .content import Content, ContentParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -46,19 +51,39 @@ class ThoughtSummaryDelta(BaseModel): pydantic.Field(alias="type"), ] = "thought_summary" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["content"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/tool.py b/google/genai/_gaos/types/interactions/tool.py index ae62f8f20..0c65ef20f 100644 --- a/google/genai/_gaos/types/interactions/tool.py +++ b/google/genai/_gaos/types/interactions/tool.py @@ -30,7 +30,7 @@ from .retrieval import Retrieval, RetrievalParam from .urlcontext import URLContext, URLContextParam from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -62,6 +62,10 @@ class UnknownTool(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _TOOL_VARIANTS: dict[str, Any] = { "code_execution": CodeExecution, diff --git a/google/genai/_gaos/types/interactions/toolchoiceconfig.py b/google/genai/_gaos/types/interactions/toolchoiceconfig.py index 4f3832a0a..5f9f85dce 100644 --- a/google/genai/_gaos/types/interactions/toolchoiceconfig.py +++ b/google/genai/_gaos/types/interactions/toolchoiceconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .allowedtools import AllowedTools, AllowedToolsParam from pydantic import model_serializer from typing import Optional @@ -39,17 +44,34 @@ class ToolChoiceConfig(BaseModel): r"""The configuration for allowed tools.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["allowed_tools"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/transcriptionconfig.py b/google/genai/_gaos/types/interactions/transcriptionconfig.py index 004381088..2d6c989bb 100644 --- a/google/genai/_gaos/types/interactions/transcriptionconfig.py +++ b/google/genai/_gaos/types/interactions/transcriptionconfig.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .transcriptionmode import TranscriptionMode, TranscriptionModeParam import pydantic from pydantic import model_serializer @@ -124,6 +135,9 @@ class TranscriptionConfig(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -136,15 +150,29 @@ def serialize_model(self, handler): "timestamp_granularities", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/transcriptionmode.py b/google/genai/_gaos/types/interactions/transcriptionmode.py index 9c53bb076..046b7975e 100644 --- a/google/genai/_gaos/types/interactions/transcriptionmode.py +++ b/google/genai/_gaos/types/interactions/transcriptionmode.py @@ -26,7 +26,7 @@ VerbatimTranscriptionModeParam, ) from functools import partial -from pydantic import ConfigDict +from pydantic import ConfigDict, model_serializer from pydantic.functional_validators import BeforeValidator from typing import Any, Literal, Union from typing_extensions import Annotated, TypeAliasType @@ -48,6 +48,10 @@ class UnknownTranscriptionMode(BaseModel): model_config = ConfigDict(frozen=True) + @model_serializer + def serialize_model(self) -> Any: + return self.raw + _TRANSCRIPTION_MODE_VARIANTS: dict[str, Any] = { "smart": SmartTranscriptionMode, diff --git a/google/genai/_gaos/types/interactions/urlcitation.py b/google/genai/_gaos/types/interactions/urlcitation.py index 76f5e5f1a..274744382 100644 --- a/google/genai/_gaos/types/interactions/urlcitation.py +++ b/google/genai/_gaos/types/interactions/urlcitation.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -69,19 +74,39 @@ class URLCitation(BaseModel): url: Optional[str] = None r"""The URL.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["end_index", "start_index", "title", "url"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/urlcontext.py b/google/genai/_gaos/types/interactions/urlcontext.py index ae209d258..301b9f3f7 100644 --- a/google/genai/_gaos/types/interactions/urlcontext.py +++ b/google/genai/_gaos/types/interactions/urlcontext.py @@ -22,7 +22,7 @@ from ...utils import validate_const import pydantic from pydantic.functional_validators import AfterValidator -from typing import Literal +from typing import Any, Literal from typing_extensions import Annotated, TypedDict @@ -42,6 +42,9 @@ class URLContext(BaseModel): pydantic.Field(alias="type"), ] = "url_context" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + try: URLContext.model_rebuild() diff --git a/google/genai/_gaos/types/interactions/urlcontextcallarguments.py b/google/genai/_gaos/types/interactions/urlcontextcallarguments.py index 396318908..148a67706 100644 --- a/google/genai/_gaos/types/interactions/urlcontextcallarguments.py +++ b/google/genai/_gaos/types/interactions/urlcontextcallarguments.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class URLContextCallArguments(BaseModel): r"""The URLs to fetch.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["urls"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/urlcontextcalldelta.py b/google/genai/_gaos/types/interactions/urlcontextcalldelta.py index 62a8278b7..ab36b023e 100644 --- a/google/genai/_gaos/types/interactions/urlcontextcalldelta.py +++ b/google/genai/_gaos/types/interactions/urlcontextcalldelta.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .urlcontextcallarguments import ( URLContextCallArguments, URLContextCallArgumentsParam, @@ -27,7 +32,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -54,19 +59,39 @@ class URLContextCallDelta(BaseModel): pydantic.Field(alias="type"), ] = "url_context_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/urlcontextcallstep.py b/google/genai/_gaos/types/interactions/urlcontextcallstep.py index 73e1793cb..937de031b 100644 --- a/google/genai/_gaos/types/interactions/urlcontextcallstep.py +++ b/google/genai/_gaos/types/interactions/urlcontextcallstep.py @@ -18,8 +18,20 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .urlcontextcallarguments import ( URLContextCallArguments, URLContextCallArgumentsParam, @@ -27,7 +39,7 @@ import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -63,19 +75,39 @@ class URLContextCallStep(BaseModel): pydantic.Field(alias="type"), ] = "url_context_call" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/urlcontextresult.py b/google/genai/_gaos/types/interactions/urlcontextresult.py index fa18042e4..6ff27b9ae 100644 --- a/google/genai/_gaos/types/interactions/urlcontextresult.py +++ b/google/genai/_gaos/types/interactions/urlcontextresult.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -55,17 +66,34 @@ class URLContextResult(BaseModel): r"""The URL that was fetched.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["status", "url"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/urlcontextresultdelta.py b/google/genai/_gaos/types/interactions/urlcontextresultdelta.py index 0e7d78b06..f3f2f48f3 100644 --- a/google/genai/_gaos/types/interactions/urlcontextresultdelta.py +++ b/google/genai/_gaos/types/interactions/urlcontextresultdelta.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .urlcontextresult import URLContextResult, URLContextResultParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -52,19 +57,39 @@ class URLContextResultDelta(BaseModel): pydantic.Field(alias="type"), ] = "url_context_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/urlcontextresultstep.py b/google/genai/_gaos/types/interactions/urlcontextresultstep.py index 37cbc916b..95a692d45 100644 --- a/google/genai/_gaos/types/interactions/urlcontextresultstep.py +++ b/google/genai/_gaos/types/interactions/urlcontextresultstep.py @@ -18,13 +18,25 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import Base64EncodedString, Base64FileInput, BaseModel, UNSET_SENTINEL +from .. import ( + Base64EncodedString, + Base64FileInput, + BaseModel, + UNSET_SENTINEL, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .urlcontextresult import URLContextResult, URLContextResultParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional, Union +from typing import Any, List, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -65,19 +77,39 @@ class URLContextResultStep(BaseModel): pydantic.Field(alias="type"), ] = "url_context_result" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["is_error", "signature"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/usage.py b/google/genai/_gaos/types/interactions/usage.py index 40bf0c1ab..afa41f72a 100644 --- a/google/genai/_gaos/types/interactions/usage.py +++ b/google/genai/_gaos/types/interactions/usage.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .groundingtoolcount import GroundingToolCount, GroundingToolCountTypedDict from .modalitytokens import ModalityTokens, ModalityTokensTypedDict from pydantic import model_serializer @@ -99,6 +104,9 @@ class Usage(BaseModel): r"""Number of tokens present in tool-use prompt(s).""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -116,15 +124,29 @@ def serialize_model(self, handler): "total_tool_use_tokens", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/userinputstep.py b/google/genai/_gaos/types/interactions/userinputstep.py index 931d7c1c7..366df2c3f 100644 --- a/google/genai/_gaos/types/interactions/userinputstep.py +++ b/google/genai/_gaos/types/interactions/userinputstep.py @@ -18,13 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .content import Content, ContentParam import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -45,19 +50,39 @@ class UserInputStep(BaseModel): pydantic.Field(alias="type"), ] = "user_input" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["content"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/verbatimtranscriptionmode.py b/google/genai/_gaos/types/interactions/verbatimtranscriptionmode.py index aa0c070ba..bac742620 100644 --- a/google/genai/_gaos/types/interactions/verbatimtranscriptionmode.py +++ b/google/genai/_gaos/types/interactions/verbatimtranscriptionmode.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import List, Literal, Optional +from typing import Any, List, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -55,19 +60,39 @@ class VerbatimTranscriptionMode(BaseModel): pydantic.Field(alias="type"), ] = "verbatim" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["diarization_mode", "timestamp_granularities"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/vertexaisearchconfig.py b/google/genai/_gaos/types/interactions/vertexaisearchconfig.py index ef57896db..4e8c38706 100644 --- a/google/genai/_gaos/types/interactions/vertexaisearchconfig.py +++ b/google/genai/_gaos/types/interactions/vertexaisearchconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Optional from typing_extensions import NotRequired, TypedDict @@ -43,17 +48,34 @@ class VertexAISearchConfig(BaseModel): r"""Optional. Used to specify Vertex AI Search engine.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["datastores", "engine"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/videoconfig.py b/google/genai/_gaos/types/interactions/videoconfig.py index 28c417b49..50efa17be 100644 --- a/google/genai/_gaos/types/interactions/videoconfig.py +++ b/google/genai/_gaos/types/interactions/videoconfig.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -60,17 +71,34 @@ class VideoConfig(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["task"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/videocontent.py b/google/genai/_gaos/types/interactions/videocontent.py index 78820a860..bdcf9d2d1 100644 --- a/google/genai/_gaos/types/interactions/videocontent.py +++ b/google/genai/_gaos/types/interactions/videocontent.py @@ -24,14 +24,21 @@ BaseModel, UNSET_SENTINEL, UnrecognizedStr, + current_exclude_none, + serialize_with_info, ) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .mediaprocessing import MediaProcessing, MediaProcessingParam from .mediaresolution import MediaResolution import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict @@ -117,21 +124,41 @@ class VideoContent(BaseModel): uri: Optional[str] = None r"""The URI of the video.""" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["data", "mime_type", "name", "processing", "resolution", "uri"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/videodelta.py b/google/genai/_gaos/types/interactions/videodelta.py index a568d811d..30f1cc474 100644 --- a/google/genai/_gaos/types/interactions/videodelta.py +++ b/google/genai/_gaos/types/interactions/videodelta.py @@ -18,13 +18,24 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .mediaresolution import MediaResolution import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -67,19 +78,39 @@ class VideoDelta(BaseModel): uri: Optional[str] = None + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["data", "mime_type", "resolution", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/videoresponseformat.py b/google/genai/_gaos/types/interactions/videoresponseformat.py index 9b579424d..4e87b23a8 100644 --- a/google/genai/_gaos/types/interactions/videoresponseformat.py +++ b/google/genai/_gaos/types/interactions/videoresponseformat.py @@ -18,12 +18,23 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional, Union +from typing import Any, Literal, Optional, Union from typing_extensions import Annotated, NotRequired, TypedDict @@ -102,21 +113,41 @@ class VideoResponseFormat(BaseModel): pydantic.Field(alias="type"), ] = "video" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( ["aspect_ratio", "delivery", "duration", "gcs_uri", "resolution"] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/webhookconfig.py b/google/genai/_gaos/types/interactions/webhookconfig.py index 61051f0e0..ba2b28ec0 100644 --- a/google/genai/_gaos/types/interactions/webhookconfig.py +++ b/google/genai/_gaos/types/interactions/webhookconfig.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Any, Dict, List, Optional from typing_extensions import NotRequired, TypedDict @@ -51,17 +56,34 @@ class WebhookConfig(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["uris", "user_metadata"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/interactions/wordinfo.py b/google/genai/_gaos/types/interactions/wordinfo.py index 55d100854..018b64cf6 100644 --- a/google/genai/_gaos/types/interactions/wordinfo.py +++ b/google/genai/_gaos/types/interactions/wordinfo.py @@ -18,12 +18,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ...utils import validate_const +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from pydantic.functional_validators import AfterValidator -from typing import Literal, Optional +from typing import Any, Literal, Optional from typing_extensions import Annotated, NotRequired, TypedDict @@ -93,7 +98,13 @@ class WordInfo(BaseModel): pydantic.Field(alias="type"), ] = "word_info" + def model_post_init(self, context: Any, /) -> None: + self.__pydantic_fields_set__.update(["type"]) + @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -105,16 +116,30 @@ def serialize_model(self, handler): "text", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/security.py b/google/genai/_gaos/types/security.py index a3bff49b4..103983cf7 100644 --- a/google/genai/_gaos/types/security.py +++ b/google/genai/_gaos/types/security.py @@ -18,8 +18,13 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from . import BaseModel, UNSET_SENTINEL +from . import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info from ..utils import FieldMetadata, SecurityMetadata +from .basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) import pydantic from pydantic import model_serializer from typing import Dict, Optional @@ -76,18 +81,35 @@ class Security(BaseModel): r"""Additional default headers to apply before request-specific headers and auth.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["accessToken", "apiKey", "defaultHeaders"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/triggers/listtriggerexecutionsresponse.py b/google/genai/_gaos/types/triggers/listtriggerexecutionsresponse.py index 2c6ecff80..c07343d47 100644 --- a/google/genai/_gaos/types/triggers/listtriggerexecutionsresponse.py +++ b/google/genai/_gaos/types/triggers/listtriggerexecutionsresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .triggerexecution import TriggerExecution, TriggerExecutionTypedDict from pydantic import model_serializer from typing import List, Optional @@ -48,17 +53,34 @@ class ListTriggerExecutionsResponse(BaseModel): r"""The list of trigger executions.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["next_page_token", "trigger_executions"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/triggers/listtriggersresponse.py b/google/genai/_gaos/types/triggers/listtriggersresponse.py index a87ad4111..455727073 100644 --- a/google/genai/_gaos/types/triggers/listtriggersresponse.py +++ b/google/genai/_gaos/types/triggers/listtriggersresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .trigger import Trigger, TriggerTypedDict from pydantic import model_serializer from typing import List, Optional @@ -48,17 +53,34 @@ class ListTriggersResponse(BaseModel): r"""The list of triggers.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["next_page_token", "triggers"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/triggers/trigger.py b/google/genai/_gaos/types/triggers/trigger.py index 9e9757d4d..f2c26acee 100644 --- a/google/genai/_gaos/types/triggers/trigger.py +++ b/google/genai/_gaos/types/triggers/trigger.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..interactions import createagentinteraction as interactions_createagentinteraction from datetime import datetime from pydantic import model_serializer @@ -143,6 +154,9 @@ class Trigger(BaseModel): r"""Output only. The time when the trigger was last updated.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -161,15 +175,29 @@ def serialize_model(self, handler): "update_time", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/triggers/triggercreateparams.py b/google/genai/_gaos/types/triggers/triggercreateparams.py index 2f20a9293..e247fd28f 100644 --- a/google/genai/_gaos/types/triggers/triggercreateparams.py +++ b/google/genai/_gaos/types/triggers/triggercreateparams.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..interactions import createagentinteraction as interactions_createagentinteraction from pydantic import model_serializer from typing import Optional @@ -77,6 +82,9 @@ class TriggerCreateParams(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -86,15 +94,29 @@ def serialize_model(self, handler): "max_consecutive_failures", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/triggers/triggerexecution.py b/google/genai/_gaos/types/triggers/triggerexecution.py index b5c45d0ae..a74114ca6 100644 --- a/google/genai/_gaos/types/triggers/triggerexecution.py +++ b/google/genai/_gaos/types/triggers/triggerexecution.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from datetime import datetime from pydantic import model_serializer from typing import Literal, Optional, Union @@ -92,6 +103,9 @@ class TriggerExecution(BaseModel): r"""Output only. The status of the execution.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -104,15 +118,29 @@ def serialize_model(self, handler): "status", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/triggers/triggerupdate.py b/google/genai/_gaos/types/triggers/triggerupdate.py index 4892d9e56..21a8812c9 100644 --- a/google/genai/_gaos/types/triggers/triggerupdate.py +++ b/google/genai/_gaos/types/triggers/triggerupdate.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional from typing_extensions import NotRequired, TypedDict @@ -51,17 +56,34 @@ class TriggerUpdate(BaseModel): r"""Optional. The status of the trigger.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["display_name", "status"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/voices/createvoicerequest.py b/google/genai/_gaos/types/voices/createvoicerequest.py index f2711b5c6..16a5383b0 100644 --- a/google/genai/_gaos/types/voices/createvoicerequest.py +++ b/google/genai/_gaos/types/voices/createvoicerequest.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .voice_input import VoiceInput, VoiceInputParam from pydantic import model_serializer from typing import Optional @@ -78,17 +83,34 @@ class CreateVoiceRequest(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["store"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/voices/listvoicesresponse.py b/google/genai/_gaos/types/voices/listvoicesresponse.py index 91c1c6f14..bdb60eb2e 100644 --- a/google/genai/_gaos/types/voices/listvoicesresponse.py +++ b/google/genai/_gaos/types/voices/listvoicesresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .voice_output import VoiceOutput, VoiceOutputTypedDict from pydantic import model_serializer from typing import List, Optional @@ -48,17 +53,34 @@ class ListVoicesResponse(BaseModel): r"""The voices from the specified collection.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["next_page_token", "voices"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/voices/promptedvoice.py b/google/genai/_gaos/types/voices/promptedvoice.py index e32281fcc..aecc72879 100644 --- a/google/genai/_gaos/types/voices/promptedvoice.py +++ b/google/genai/_gaos/types/voices/promptedvoice.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -65,17 +70,34 @@ class PromptedVoice(BaseModel): """ @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["base_voice"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/voices/voice_input.py b/google/genai/_gaos/types/voices/voice_input.py index 724b9111d..d94fe696a 100644 --- a/google/genai/_gaos/types/voices/voice_input.py +++ b/google/genai/_gaos/types/voices/voice_input.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .audiodata import AudioData, AudioDataParam from .pitch import Pitch from .promptedvoice import PromptedVoice, PromptedVoiceParam @@ -152,6 +157,9 @@ class VoiceInput(BaseModel): r"""Audio payload used for voice creation.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -170,15 +178,29 @@ def serialize_model(self, handler): "sample_audio", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/voices/voice_output.py b/google/genai/_gaos/types/voices/voice_output.py index a20f6936f..a3b51d6c2 100644 --- a/google/genai/_gaos/types/voices/voice_output.py +++ b/google/genai/_gaos/types/voices/voice_output.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from ..interactions import usage as interactions_usage from .audiodata import AudioData, AudioDataParam from .pitch import Pitch @@ -200,6 +205,9 @@ class VoiceOutput(BaseModel): r"""Statistics on the interaction request's token usage.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -221,15 +229,29 @@ def serialize_model(self, handler): "usage", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/webhooks/rotatesigningsecretrequest.py b/google/genai/_gaos/types/webhooks/rotatesigningsecretrequest.py index 0d33bb2c3..5ba71ad89 100644 --- a/google/genai/_gaos/types/webhooks/rotatesigningsecretrequest.py +++ b/google/genai/_gaos/types/webhooks/rotatesigningsecretrequest.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Literal, Optional from typing_extensions import NotRequired, TypedDict @@ -45,17 +50,34 @@ class RotateSigningSecretRequest(BaseModel): r"""Optional. The revocation behavior for previous signing secrets.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["revocation_behavior"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/webhooks/signingsecret.py b/google/genai/_gaos/types/webhooks/signingsecret.py index 4531a4fe5..315906236 100644 --- a/google/genai/_gaos/types/webhooks/signingsecret.py +++ b/google/genai/_gaos/types/webhooks/signingsecret.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from datetime import datetime from pydantic import model_serializer from typing import Optional @@ -44,17 +49,34 @@ class SigningSecret(BaseModel): r"""Output only. The truncated version of the signing secret.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["expire_time", "truncated_secret"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/webhooks/webhook.py b/google/genai/_gaos/types/webhooks/webhook.py index 6c82c8b59..10fb5cf88 100644 --- a/google/genai/_gaos/types/webhooks/webhook.py +++ b/google/genai/_gaos/types/webhooks/webhook.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .signingsecret import SigningSecret, SigningSecretTypedDict from datetime import datetime from pydantic import model_serializer @@ -130,6 +141,9 @@ class Webhook(BaseModel): r"""Output only. The timestamp when the webhook was last updated.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set( [ @@ -142,16 +156,30 @@ def serialize_model(self, handler): "update_time", ] ) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m @@ -198,17 +226,34 @@ class WebhookInput(BaseModel): r"""Optional. The user-provided name of the webhook.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["name"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/webhooks/webhooklistresponse.py b/google/genai/_gaos/types/webhooks/webhooklistresponse.py index 881ac184f..74c669e1f 100644 --- a/google/genai/_gaos/types/webhooks/webhooklistresponse.py +++ b/google/genai/_gaos/types/webhooks/webhooklistresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from .webhook import Webhook, WebhookTypedDict from pydantic import model_serializer from typing import List, Optional @@ -48,17 +53,34 @@ class WebhookListResponse(BaseModel): r"""The webhooks.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["next_page_token", "webhooks"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/webhooks/webhookrotatesigningsecretresponse.py b/google/genai/_gaos/types/webhooks/webhookrotatesigningsecretresponse.py index b1ed073a3..552c9aaae 100644 --- a/google/genai/_gaos/types/webhooks/webhookrotatesigningsecretresponse.py +++ b/google/genai/_gaos/types/webhooks/webhookrotatesigningsecretresponse.py @@ -18,7 +18,12 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL +from .. import BaseModel, UNSET_SENTINEL, current_exclude_none, serialize_with_info +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import Optional from typing_extensions import NotRequired, TypedDict @@ -38,17 +43,34 @@ class WebhookRotateSigningSecretResponse(BaseModel): r"""Output only. The newly generated signing secret.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["secret"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/types/webhooks/webhookupdate.py b/google/genai/_gaos/types/webhooks/webhookupdate.py index 078d0b988..5831feed7 100644 --- a/google/genai/_gaos/types/webhooks/webhookupdate.py +++ b/google/genai/_gaos/types/webhooks/webhookupdate.py @@ -18,7 +18,18 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" from __future__ import annotations -from .. import BaseModel, UNSET_SENTINEL, UnrecognizedStr +from .. import ( + BaseModel, + UNSET_SENTINEL, + UnrecognizedStr, + current_exclude_none, + serialize_with_info, +) +from ..basemodel import ( + current_by_alias, + current_filtered_dump, + current_serialization_methods_dump, +) from pydantic import model_serializer from typing import List, Literal, Optional, Union from typing_extensions import NotRequired, TypedDict @@ -96,17 +107,34 @@ class WebhookUpdate(BaseModel): r"""Optional. The URI to which webhook events will be sent.""" @model_serializer(mode="wrap") + def _serialize_model_with_info(self, handler, info): + return serialize_with_info(self.serialize_model, handler, info) + def serialize_model(self, handler): optional_fields = set(["name", "state", "subscribed_events", "uri"]) + exclude_none = current_exclude_none() + by_alias = current_by_alias() + use_field_names = by_alias is False + serialization_methods_dump = current_serialization_methods_dump() + skip_filtered = ( + serialization_methods_dump + or exclude_none is False + or current_filtered_dump() + ) serialized = handler(self) m = {} for n, f in type(self).model_fields.items(): - k = f.alias or n - val = serialized.get(k, serialized.get(n)) + k = f.alias if f.alias is not None else n + key = k if by_alias or k in serialized else n + if key not in serialized and skip_filtered: + continue + val = serialized.pop(key, None) if val != UNSET_SENTINEL: if val is not None or k not in optional_fields: - m[k] = val + m[n if use_field_names else k] = val + for k, v in serialized.items(): + m[k] = v return m diff --git a/google/genai/_gaos/utils/__init__.py b/google/genai/_gaos/utils/__init__.py index 89349a94d..00b9a3565 100644 --- a/google/genai/_gaos/utils/__init__.py +++ b/google/genai/_gaos/utils/__init__.py @@ -35,6 +35,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: from .datetimes import parse_datetime, parse_duration from .enums import OpenEnumMeta from .unions import parse_open_union + from .unions import dispatch_open_union_members from .headers import get_headers, get_response_headers from .metadata import ( FieldMetadata, @@ -82,6 +83,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: __all__ = [ "BackoffStrategy", + "dispatch_open_union_members", "FieldMetadata", "find_metadata", "FormMetadata", @@ -138,6 +140,7 @@ async def run_sync_in_thread(func: Callable[..., _T], *args) -> _T: _dynamic_imports: dict[str, str] = { "BackoffStrategy": ".retries", + "dispatch_open_union_members": ".unions", "FieldMetadata": ".metadata", "find_metadata": ".metadata", "FormMetadata": ".metadata", diff --git a/google/genai/_gaos/utils/serializers.py b/google/genai/_gaos/utils/serializers.py index 99747b4f6..9b3d3b5f6 100644 --- a/google/genai/_gaos/utils/serializers.py +++ b/google/genai/_gaos/utils/serializers.py @@ -295,7 +295,9 @@ def marshal_json(val, typ): m = marshaller(body=val) - d = m.model_dump(by_alias=True, mode="json", exclude_none=True) + d = m.model_dump( + by_alias=True, mode="json", exclude_none=getattr(m, "body") is None + ) if len(d) == 0: return "" diff --git a/google/genai/_gaos/utils/unions.py b/google/genai/_gaos/utils/unions.py index a205b82d5..74184bad2 100644 --- a/google/genai/_gaos/utils/unions.py +++ b/google/genai/_gaos/utils/unions.py @@ -17,9 +17,17 @@ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.""" -from typing import Any, Mapping +from functools import partial +from typing import Any, Mapping, Optional -from pydantic import BaseModel, TypeAdapter, ValidationError, ValidationInfo +from pydantic import ( + BaseModel, + TypeAdapter, + ValidationError, + ValidationInfo, + ValidatorFunctionWrapHandler, +) +from typing_extensions import Annotated, get_args, get_origin def parse_open_union( @@ -79,3 +87,127 @@ def parse_open_union( return construct_unvalidated(v, variant_cls) return unknown_cls(raw=v) + + +_DispatchMember = tuple[int, Optional[type], str, Mapping[str, Any]] + +_DISPATCH_MEMBERS: dict[int, tuple[tuple[Any, ...], list[_DispatchMember]]] = {} +_DISPATCH_ADAPTERS: dict[int, tuple[Any, TypeAdapter]] = {} + + +def _open_union_keywords(tp: Any) -> Optional[Mapping[str, Any]]: + if get_origin(tp) is not Annotated: + return None + for metadata in get_args(tp)[1:]: + func = getattr(metadata, "func", None) + if isinstance(func, partial) and func.func is parse_open_union: + return func.keywords + return None + + +def _dispatch_members(members: tuple[Any, ...]) -> list[_DispatchMember]: + cached = _DISPATCH_MEMBERS.get(id(members)) + if cached is not None: + return cached[1] + described: list[_DispatchMember] = [] + for index, member in enumerate(members): + container = get_origin(member) + if container in (list, dict): + item = get_args(member)[-1] + else: + container, item = None, member + keywords = _open_union_keywords(item) + if keywords is not None: + described.append( + (index, container, keywords["disc_key"], keywords["variants"]) + ) + _DISPATCH_MEMBERS[id(members)] = (members, described) + return described + + +def _recognizes(item: Any, disc_key: str, variants: Mapping[str, Any]) -> bool: + if not isinstance(item, dict): + return False + disc = item.get(disc_key) + return isinstance(disc, str) and disc in variants + + +def _container_owners( + container: type, items: list[Any], described: list[_DispatchMember] +) -> list[int]: + candidates = [ + member + for member in described + if member[1] is container + and all(isinstance(item, dict) and member[2] in item for item in items) + ] + recognized = [ + { + index + for index, _, disc_key, variants in candidates + if _recognizes(item, disc_key, variants) + } + for item in items + ] + return [ + index + for index, _, _, _ in candidates + if any(index in owners for owners in recognized) + and all(index in owners for owners in recognized if owners) + ] + + +def _owning_member(value: Any, described: list[_DispatchMember]) -> Optional[int]: + if isinstance(value, dict): + owners = [ + index + for index, container, disc_key, variants in described + if container is None and _recognizes(value, disc_key, variants) + ] + owners += _container_owners(dict, list(value.values()), described) + elif isinstance(value, list): + owners = _container_owners(list, value, described) + else: + return None + return owners[0] if len(owners) == 1 else None + + +def _dispatch_adapter(member: Any) -> TypeAdapter: + cached = _DISPATCH_ADAPTERS.get(id(member)) + if cached is None: + cached = (member, TypeAdapter(member)) + _DISPATCH_ADAPTERS[id(member)] = cached + return cached[1] + + +def dispatch_open_union_members( + value: Any, + handler: ValidatorFunctionWrapHandler, + info: ValidationInfo, + *, + members: tuple[Any, ...], +) -> Any: + """Validate a union value against the open discriminated union that owns it. + + members lists the union's open discriminated unions, directly or as list or + dict items. An object belongs to the members whose discriminator mapping + contains its discriminator value. A list or dict belongs to a container + member when every item is an object with that member's discriminator field, + and that member recognizes at least one item and every recognized item. + With exactly one owner, the value is validated against that member first, + so another member's Unknown fallback cannot claim it. Otherwise, or when + the owner rejects the value, the enclosing union validates the value as + usual; if that also fails, the owner's error is raised. + """ + owner = _owning_member(value, _dispatch_members(members)) + if owner is None: + return handler(value) + try: + return _dispatch_adapter(members[owner]).validate_python( + value, context=info.context + ) + except ValidationError as owner_error: + try: + return handler(value) + except ValidationError: + raise owner_error from None diff --git a/google/genai/_gaos/voices.py b/google/genai/_gaos/voices.py index 454f466f5..1684c55f3 100644 --- a/google/genai/_gaos/voices.py +++ b/google/genai/_gaos/voices.py @@ -96,7 +96,7 @@ def list( voices with any of the specified region codes (OR). :param search: Optional. Free-text substring search query matched case-insensitively against both `display_name` and `description`. Maximum 2048 bytes. - :param type: Optional. Filter by voice type. Accepts `\"prebuilt\"`, `\"replicated\"`, + :param type_: Optional. Filter by voice type. Accepts `\"prebuilt\"`, `\"replicated\"`, `\"prompted\"` (case-insensitive). If multiple values are specified, matches voices with any of the specified types (OR). :param extra_headers: Additional headers to set or replace on requests. @@ -832,7 +832,7 @@ async def list( voices with any of the specified region codes (OR). :param search: Optional. Free-text substring search query matched case-insensitively against both `display_name` and `description`. Maximum 2048 bytes. - :param type: Optional. Filter by voice type. Accepts `\"prebuilt\"`, `\"replicated\"`, + :param type_: Optional. Filter by voice type. Accepts `\"prebuilt\"`, `\"replicated\"`, `\"prompted\"` (case-insensitive). If multiple values are specified, matches voices with any of the specified types (OR). :param extra_headers: Additional headers to set or replace on requests.