Resource: CachedContent
A resource used in LLM queries for users to explicitly specify what to cache and how to cache.
name
string
Immutable. Identifier. The server-generated resource name of the cached content Format: projects/{project}/locations/{location}/cachedContents/{cachedContent}
displayName
string
Optional. Immutable. The user-generated meaningful display name of the cached content.
model
string
Immutable. The name of the Model
to use for cached content. Currently, only the published Gemini base models are supported, in form of projects/{PROJECT}/locations/{LOCATION}/publishers/google/models/{MODEL}
systemInstruction
object ( Content
)
Optional. Input only. Immutable. Developer set system instruction. Currently, text only
contents[]
object ( Content
)
Optional. Input only. Immutable. The content to cache
tools[]
object ( Tool
)
Optional. Input only. Immutable. A list of Tools
the model may use to generate the next response
toolConfig
object ( ToolConfig
)
Optional. Input only. Immutable. Tool config. This config is shared for all tools
createTime
string ( Timestamp
format)
Output only. Creation time of the cache entry.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
updateTime
string ( Timestamp
format)
Output only. When the cache entry was last updated in UTC time.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
encryptionSpec
object ( EncryptionSpec
)
Input only. Immutable. Customer-managed encryption key spec for a CachedContent
. If set, this CachedContent
and all its sub-resources will be secured by this key.
expiration
Union type
expiration
can be only one of the following:expireTime
string ( Timestamp
format)
timestamp of when this resource is considered expired. This is always provided on output, regardless of what was sent on input.
Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z"
, "2014-10-02T15:01:23.045123456Z"
or "2014-10-02T15:01:23+05:30"
.
ttl
string ( Duration
format)
Input only. The TTL for this resource. The expiration time is computed: now + TTL.
A duration in seconds with up to nine fractional digits, ending with ' s
'. Example: "3.5s"
.
| JSON representation |
|---|
{ "name" : string , "displayName" : string , "model" : string , "systemInstruction" : { object ( |
Tool
Tool details that the model may use to generate response.
A Tool
is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the model. A Tool object should contain exactly one type of Tool (e.g FunctionDeclaration, Retrieval or GoogleSearchRetrieval).
functionDeclarations[]
object ( FunctionDeclaration
)
Optional. Function tool type. One or more function declarations to be passed to the model along with the current user query. Model may decide to call a subset of these functions by populating FunctionCall
in the response. user should provide a FunctionResponse
for each function call in the next turn. Based on the function responses, Model will generate the final response back to the user. Maximum 512 function declarations can be provided.
retrieval
object ( Retrieval
)
Optional. Retrieval tool type. System will always execute the provided retrieval tool(s) to get external knowledge to answer the prompt. Retrieval results are presented to the model for generation.
googleSearch
object ( GoogleSearch
)
Optional. GoogleSearch tool type. Tool to support Google Search in Model. Powered by Google.
googleSearchRetrieval
(deprecated)
object ( GoogleSearchRetrieval
)
Optional. Specialized retrieval tool that is powered by Google Search.
googleMaps
object ( GoogleMaps
)
Optional. GoogleMaps tool type. Tool to support Google Maps in Model.
enterpriseWebSearch
object ( EnterpriseWebSearch
)
Optional. Tool to support searching public web data, powered by Vertex AI Search and Sec4 compliance.
codeExecution
object ( CodeExecution
)
Optional. CodeExecution tool type. Enables the model to execute code as part of generation.
urlContext
object ( UrlContext
)
Optional. Tool to support URL context retrieval.
computerUse
object ( ComputerUse
)
Optional. Tool to support the model interacting directly with the computer. If enabled, it automatically populates computer-use specific Function Declarations.
| JSON representation |
|---|
{ "functionDeclarations" : [ { object ( |
FunctionDeclaration
Structured representation of a function declaration as defined by the OpenAPI 3.0 specification
. Included in this declaration are the function name, description, parameters and response type. This FunctionDeclaration is a representation of a block of code that can be used as a Tool
by the model and executed by the client.
name
string
Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots, colons and dashes, with a maximum length of 128.
description
string
Optional. description and purpose of the function. Model uses it to decide how and whether to call the function.
parameters
object ( Schema
)
Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1
parametersJsonSchema
value ( Value
format)
Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example:
{
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" }
},
"additionalProperties": false,
"required": ["name", "age"],
"propertyOrdering": ["name", "age"]
}
This field is mutually exclusive with parameters
.
response
object ( Schema
)
Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function.
responseJsonSchema
value ( Value
format)
Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function.
This field is mutually exclusive with response
.
Schema
Defines the schema of input and output data. This is a subset of the OpenAPI 3.0 Schema Object .
type
enum ( Type
)
Optional. data type of the schema field.
format
string
Optional. The format of the data. For NUMBER
type, format can be float
or double
. For INTEGER
type, format can be int32
or int64
. For STRING
type, format can be email
, byte
, date
, date-time
, password
, and other formats to further refine the data type.
title
string
Optional. title for the schema.
description
string
Optional. Describes the data. The model uses this field to understand the purpose of the schema and how to use it. It is a best practice to provide a clear and descriptive explanation for the schema and its properties here, rather than in the prompt.
nullable
boolean
Optional. Indicates if the value of this field can be null.
default
value ( Value
format)
Optional. Default value to use if the field is not specified.
items
object ( Schema
)
Optional. If type is ARRAY
, items
specifies the schema of elements in the array.
minItems
string ( int64
format)
Optional. If type is ARRAY
, minItems
specifies the minimum number of items in an array.
maxItems
string ( int64
format)
Optional. If type is ARRAY
, maxItems
specifies the maximum number of items in an array.
enum[]
string
Optional. Possible values of the field. This field can be used to restrict a value to a fixed set of values. To mark a field as an enum, set format
to enum
and provide the list of possible values in enum
. For example: 1. To define directions: {type:STRING, format:enum, enum:["EAST", "NORTH", "SOUTH", "WEST"]}
2. To define apartment numbers: {type:INTEGER, format:enum, enum:["101", "201", "301"]}
properties
map (key: string, value: object ( Schema
))
Optional. If type is OBJECT
, properties
is a map of property names to schema definitions for each property of the object.
propertyOrdering[]
string
Optional. Order of properties displayed or used where order matters. This is not a standard field in OpenAPI specification, but can be used to control the order of properties.
required[]
string
Optional. If type is OBJECT
, required
lists the names of properties that must be present.
minProperties
string ( int64
format)
Optional. If type is OBJECT
, minProperties
specifies the minimum number of properties that can be provided.
maxProperties
string ( int64
format)
Optional. If type is OBJECT
, maxProperties
specifies the maximum number of properties that can be provided.
minimum
number
Optional. If type is INTEGER
or NUMBER
, minimum
specifies the minimum allowed value.
maximum
number
Optional. If type is INTEGER
or NUMBER
, maximum
specifies the maximum allowed value.
minLength
string ( int64
format)
Optional. If type is STRING
, minLength
specifies the minimum length of the string.
maxLength
string ( int64
format)
Optional. If type is STRING
, maxLength
specifies the maximum length of the string.
pattern
string
Optional. If type is STRING
, pattern
specifies a regular expression that the string must match.
example
value ( Value
format)
Optional. Example of an instance of this schema.
anyOf[]
object ( Schema
)
Optional. The instance must be valid against any (one or more) of the subschemas listed in anyOf
.
additionalProperties
value ( Value
format)
Optional. If type
is OBJECT
, specifies how to handle properties not defined in properties
. If it is a boolean false
, no additional properties are allowed. If it is a schema, additional properties are allowed if they conform to the schema.
ref
string
Optional. Allows referencing another schema definition to use in place of this schema. The value must be a valid reference to a schema in defs
.
For example, the following schema defines a reference to a schema node named "Pet":
type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string
The value of the "pet" property is a reference to the schema node named "Pet". See details in https://json-schema.org/understanding-json-schema/structuring
defs
map (key: string, value: object ( Schema
))
Optional. defs
provides a map of schema definitions that can be reused by ref
elsewhere in the schema. Only allowed at root level of the schema.
| JSON representation |
|---|
{ "type" : enum ( |
Type
type contains the list of OpenAPI data types as defined by https://swagger.io/docs/specification/data-models/data-types/
| Enums | |
|---|---|
TYPE_UNSPECIFIED
|
Not specified, should not be used. |
STRING
|
OpenAPI string type |
NUMBER
|
OpenAPI number type |
INTEGER
|
OpenAPI integer type |
BOOLEAN
|
OpenAPI boolean type |
ARRAY
|
OpenAPI array type |
OBJECT
|
OpenAPI object type |
NULL
|
Null type |
Retrieval
Defines a retrieval tool that model can call to access external knowledge.
disableAttribution
(deprecated)
boolean
Optional. Deprecated. This option is no longer supported.
source
Union type
source
can be only one of the following:vertexAiSearch
object ( VertexAISearch
)
Set to use data source powered by Vertex AI Search.
vertexRagStore
object ( VertexRagStore
)
Set to use data source powered by Vertex RAG store. user data is uploaded via the VertexRagDataService.
| JSON representation |
|---|
{ "disableAttribution" : boolean , // source "vertexAiSearch" : { object ( |
VertexAISearch
Retrieve from Vertex AI Search datastore or engine for grounding. datastore and engine are mutually exclusive. See https://cloud.google.com/products/agent-builder
datastore
string
Optional. Fully-qualified Vertex AI Search data store resource id. Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
engine
string
Optional. Fully-qualified Vertex AI Search engine resource id. Format: projects/{project}/locations/{location}/collections/{collection}/engines/{engine}
maxResults
integer
Optional. Number of search results to return per query. The default value is 10. The maximumm allowed value is 10.
filter
string
Optional. Filter strings to be passed to the search API.
dataStoreSpecs[]
object ( DataStoreSpec
)
Specifications that define the specific DataStores to be searched, along with configurations for those data stores. This is only considered for Engines with multiple data stores. It should only be set if engine is used.
| JSON representation |
|---|
{
"datastore"
:
string
,
"engine"
:
string
,
"maxResults"
:
integer
,
"filter"
:
string
,
"dataStoreSpecs"
:
[
{
object (
|
DataStoreSpec
Define data stores within engine to filter on in a search call and configurations for those data stores. For more information, see https://cloud.google.com/generative-ai-app-builder/docs/reference/rpc/google.cloud.discoveryengine.v1#datastorespec
dataStore
string
Full resource name of DataStore, such as Format: projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}
filter
string
Optional. Filter specification to filter documents in the data store specified by dataStore field. For more information on filtering, see Filtering
| JSON representation |
|---|
{ "dataStore" : string , "filter" : string } |
VertexRagStore
Retrieve from Vertex RAG Store for grounding.
ragResources[]
object ( RagResource
)
Optional. The representation of the rag source. It can be used to specify corpus only or ragfiles. Currently only support one corpus or multiple files from one corpus. In the future we may open up multiple corpora support.
ragRetrievalConfig
object ( RagRetrievalConfig
)
Optional. The retrieval config for the Rag query.
similarityTopK
(deprecated)
integer
Optional. Number of top k results to return from the selected corpora.
vectorDistanceThreshold
(deprecated)
number
Optional. Only return results with vector distance smaller than the threshold.
| JSON representation |
|---|
{ "ragResources" : [ { object ( |
RagResource
The definition of the Rag resource.
ragCorpus
string
Optional. RagCorpora resource name. Format: projects/{project}/locations/{location}/ragCorpora/{ragCorpus}
ragFileIds[]
string
Optional. ragFileId. The files should be in the same ragCorpus set in ragCorpus field.
| JSON representation |
|---|
{ "ragCorpus" : string , "ragFileIds" : [ string ] } |
RagRetrievalConfig
Filter
Config for filters.
vector_db_threshold
Union type
vector_db_threshold
can be only one of the following:vectorDistanceThreshold
number
Optional. Only returns contexts with vector distance smaller than the threshold.
vectorSimilarityThreshold
number
Optional. Only returns contexts with vector similarity larger than the threshold.
| JSON representation |
|---|
{ "metadataFilter" : string , // vector_db_threshold "vectorDistanceThreshold" : number , "vectorSimilarityThreshold" : number // Union type } |
Ranking
Config for ranking and reranking.
ranking_config
Union type
ranking_config
can be only one of the following:rankService
object ( RankService
)
Optional. Config for Rank service.
llmRanker
object ( LlmRanker
)
Optional. Config for LlmRanker.
| JSON representation |
|---|
{ // ranking_config "rankService" : { object ( |
RankService
Config for Rank service.
modelName
string
Optional. The model name of the rank service. Format: semantic-ranker-512@latest
| JSON representation |
|---|
{ "modelName" : string } |
LlmRanker
Config for LlmRanker.
modelName
string
Optional. The model name used for ranking. See Supported models .
| JSON representation |
|---|
{ "modelName" : string } |
GoogleSearch
GoogleSearch tool type. Tool to support Google Search in Model. Powered by Google.
excludeDomains[]
string
Optional. List of domains to be excluded from the search results. The default limit is 2000 domains. Example: ["amazon.com", "facebook.com"].
blockingConfidence
enum ( PhishBlockThreshold
)
Optional. Sites with confidence level chosen & above this value will be blocked from the search results.
| JSON representation |
|---|
{
"excludeDomains"
:
[
string
]
,
"blockingConfidence"
:
enum (
|
PhishBlockThreshold
These are available confidence level user can set to block malicious urls with chosen confidence and above. For understanding different confidence of webrisk, please refer to https://cloud.google.com/web-risk/docs/reference/rpc/google.cloud.webrisk.v1eap1#confidencelevel
| Enums | |
|---|---|
PHISH_BLOCK_THRESHOLD_UNSPECIFIED
|
Defaults to unspecified. |
BLOCK_LOW_AND_ABOVE
|
Blocks Low and above confidence URL that is risky. |
BLOCK_MEDIUM_AND_ABOVE
|
Blocks Medium and above confidence URL that is risky. |
BLOCK_HIGH_AND_ABOVE
|
Blocks High and above confidence URL that is risky. |
BLOCK_HIGHER_AND_ABOVE
|
Blocks Higher and above confidence URL that is risky. |
BLOCK_VERY_HIGH_AND_ABOVE
|
Blocks Very high and above confidence URL that is risky. |
BLOCK_ONLY_EXTREMELY_HIGH
|
Blocks Extremely high confidence URL that is risky. |
GoogleSearchRetrieval
Tool to retrieve public web data for grounding, powered by Google.
dynamicRetrievalConfig
object ( DynamicRetrievalConfig
)
Specifies the dynamic retrieval configuration for the given source.
| JSON representation |
|---|
{
"dynamicRetrievalConfig"
:
{
object (
|
DynamicRetrievalConfig
Describes the options to customize dynamic retrieval.
mode
enum ( Mode
)
The mode of the predictor to be used in dynamic retrieval.
dynamicThreshold
number
Optional. The threshold to be used in dynamic retrieval. If not set, a system default value is used.
| JSON representation |
|---|
{
"mode"
:
enum (
|
Mode
The mode of the predictor to be used in dynamic retrieval.
| Enums | |
|---|---|
MODE_UNSPECIFIED
|
Always trigger retrieval. |
MODE_DYNAMIC
|
Run retrieval only when system decides it is necessary. |
GoogleMaps
Tool to retrieve public maps data for grounding, powered by Google.
| JSON representation |
|---|
{ "enableWidget" : boolean } |
EnterpriseWebSearch
Tool to search public web data, powered by Vertex AI Search and Sec4 compliance.
excludeDomains[]
string
Optional. List of domains to be excluded from the search results. The default limit is 2000 domains.
blockingConfidence
enum ( PhishBlockThreshold
)
Optional. Sites with confidence level chosen & above this value will be blocked from the search results.
| JSON representation |
|---|
{
"excludeDomains"
:
[
string
]
,
"blockingConfidence"
:
enum (
|
CodeExecution
This type has no fields.
Tool that executes code generated by the model, and automatically returns the result to the model.
See also ExecutableCode
and CodeExecutionResult
, which are input and output to this tool.
UrlContext
This type has no fields.
Tool to support URL context.
ComputerUse
Tool to support computer use.
environment
enum ( Environment
)
Required. The environment being operated.
excludedPredefinedFunctions[]
string
Optional. By default, predefined functions are included in the final model call. Some of them can be explicitly excluded from being automatically included. This can serve two purposes: 1. Using a more restricted / different action space. 2. Improving the definitions / instructions of predefined functions.
| JSON representation |
|---|
{
"environment"
:
enum (
|
Environment
Represents the environment being operated, such as a web browser.
| Enums | |
|---|---|
ENVIRONMENT_UNSPECIFIED
|
Defaults to browser. |
ENVIRONMENT_BROWSER
|
Operates in a web browser. |
ToolConfig
Tool config. This config is shared for all tools provided in the request.
functionCallingConfig
object ( FunctionCallingConfig
)
Optional. Function calling config.
retrievalConfig
object ( RetrievalConfig
)
Optional. Retrieval config.
| JSON representation |
|---|
{ "functionCallingConfig" : { object ( |
FunctionCallingConfig
Function calling config.
mode
enum ( Mode
)
Optional. Function calling mode.
allowedFunctionNames[]
string
Optional. Function names to call. Only set when the Mode is ANY. Function names should match FunctionDeclaration.name
. With mode set to ANY, model will predict a function call from the set of function names provided.
streamFunctionCallArguments
boolean
Optional. When set to true, arguments of a single function call will be streamed out in multiple parts/contents/responses. Partial parameter results will be returned in the FunctionCall.partial_args
field.
| JSON representation |
|---|
{
"mode"
:
enum (
|
Mode
Function calling mode.
| Enums | |
|---|---|
MODE_UNSPECIFIED
|
Unspecified function calling mode. This value should not be used. |
AUTO
|
Default model behavior, model decides to predict either function calls or natural language response. |
ANY
|
Model is constrained to always predicting function calls only. If "allowedFunctionNames" are set, the predicted function calls will be limited to any one of "allowedFunctionNames", else the predicted function calls will be any one of the provided "functionDeclarations". |
NONE
|
Model will not predict any function calls. Model behavior is same as when not passing any function declarations. |
VALIDATED
|
Model is constrained to predict either function calls or natural language response. If "allowedFunctionNames" are set, the predicted function calls will be limited to any one of "allowedFunctionNames", else the predicted function calls will be any one of the provided "functionDeclarations". |
RetrievalConfig
UsageMetadata
metadata on the usage of the cached content.
totalTokenCount
integer
Total number of tokens that the cached content consumes.
textCount
integer
Number of text characters.
imageCount
integer
Number of images.
videoDurationSeconds
integer
Duration of video in seconds.
audioDurationSeconds
integer
Duration of audio in seconds.
| JSON representation |
|---|
{ "totalTokenCount" : integer , "textCount" : integer , "imageCount" : integer , "videoDurationSeconds" : integer , "audioDurationSeconds" : integer } |
Methods |
|
|---|---|
|
Creates cached content, this call will initialize the cached content in the data storage, and users need to pay for the cache data storage. |
|
Deletes cached content |
|
Gets cached content configurations |
|
Lists cached contents in a project |
|
Updates cached content configurations |

