From 2e9eeb05fc6c9650207bb82e9227c8cb80a201a4 Mon Sep 17 00:00:00 2001 From: Mark Daoust Date: Sun, 22 Mar 2026 22:17:28 -0700 Subject: [PATCH] feat: Add service tier to GenerateContent. PiperOrigin-RevId: 887880921 --- google/genai/batches.py | 3 +++ google/genai/models.py | 6 ++++++ google/genai/types.py | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/google/genai/batches.py b/google/genai/batches.py index 77e2b34bf..0dbd0b8ac 100644 --- a/google/genai/batches.py +++ b/google/genai/batches.py @@ -1052,6 +1052,9 @@ def _GenerateContentConfig_to_mldev( 'model_armor_config parameter is not supported in Gemini API.' ) + if getv(from_object, ['service_tier']) is not None: + setv(parent_object, ['serviceTier'], getv(from_object, ['service_tier'])) + return to_object diff --git a/google/genai/models.py b/google/genai/models.py index c932b729c..cfc53a27a 100644 --- a/google/genai/models.py +++ b/google/genai/models.py @@ -1316,6 +1316,9 @@ def _GenerateContentConfig_to_mldev( 'model_armor_config parameter is not supported in Gemini API.' ) + if getv(from_object, ['service_tier']) is not None: + setv(parent_object, ['serviceTier'], getv(from_object, ['service_tier'])) + return to_object @@ -1502,6 +1505,9 @@ def _GenerateContentConfig_to_vertex( getv(from_object, ['model_armor_config']), ) + if getv(from_object, ['service_tier']) is not None: + raise ValueError('service_tier parameter is not supported in Vertex AI.') + return to_object diff --git a/google/genai/types.py b/google/genai/types.py index 35f5e5ffb..3f55f9fd6 100644 --- a/google/genai/types.py +++ b/google/genai/types.py @@ -831,6 +831,17 @@ class ResourceScope(_common.CaseInSensitiveEnum): "https://aiplatform.googleapis.com/publishers/google/models/gemini-3-pro-preview""" +class ServiceTier(_common.CaseInSensitiveEnum): + """Pricing and performance service tier.""" + + unspecified = 'unspecified' + """Default service tier, which is standard.""" + standard = 'standard' + """Standard service tier.""" + flex = 'flex' + """Flex service tier.""" + + class JSONSchemaType(Enum): """The type of the data supported by JSON Schema. @@ -5933,6 +5944,10 @@ class GenerateContentConfig(_common.BaseModel): service. If supplied, safety_settings must not be supplied. """, ) + service_tier: Optional[ServiceTier] = Field( + default=None, + description="""The service tier to use for the request. For example, FLEX.""", + ) @pydantic.field_validator('response_schema', mode='before') @classmethod @@ -6147,6 +6162,9 @@ class GenerateContentConfigDict(TypedDict, total=False): service. If supplied, safety_settings must not be supplied. """ + service_tier: Optional[ServiceTier] + """The service tier to use for the request. For example, FLEX.""" + GenerateContentConfigOrDict = Union[ GenerateContentConfig, GenerateContentConfigDict