{
  "servers": [
    {
      "url": "https://generativelanguage.googleapis.com",
      "description": "Global Endpoint"
    },
    {
      "x-google-endpoint-location": "us",
      "url": "https://generativelanguage.us.rep.googleapis.com/",
      "description": "Regional Endpoint"
    }
  ],
  "openapi": "3.0.3",
  "components": {
    "schemas": {
      "ModelStatus": {
        "properties": {
          "modelStage": {
            "description": "The stage of the underlying model.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ModelStage"
              }
            ]
          },
          "retirementTime": {
            "description": "The time at which the model will be retired.",
            "type": "string",
            "format": "date-time"
          },
          "message": {
            "type": "string",
            "description": "A message explaining the model status."
          }
        },
        "type": "object",
        "description": "The status of the underlying model. This is used to indicate the stage of the\nunderlying model and the retirement time if applicable."
      },
      "GroundingPassages": {
        "properties": {
          "passages": {
            "description": "List of passages.",
            "items": {
              "$ref": "#/components/schemas/GroundingPassage"
            },
            "type": "array"
          }
        },
        "type": "object",
        "description": "A repeated list of passages."
      },
      "ImageResponseFormat": {
        "type": "object",
        "properties": {
          "mimeType": {
            "type": "string",
            "enum": [
              "MIME_TYPE_UNSPECIFIED",
              "IMAGE_JPEG"
            ],
            "description": "Optional. The MIME type of the image output.",
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "JPEG image format."
            ]
          },
          "delivery": {
            "description": "Optional. The delivery mode for the image output.",
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "Image data is returned inline in the response.",
              "Image data is returned as a URI."
            ],
            "type": "string",
            "enum": [
              "DELIVERY_UNSPECIFIED",
              "INLINE",
              "URI"
            ]
          },
          "aspectRatio": {
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "1:1 aspect ratio.",
              "2:3 aspect ratio.",
              "3:2 aspect ratio.",
              "3:4 aspect ratio.",
              "4:3 aspect ratio.",
              "4:5 aspect ratio.",
              "5:4 aspect ratio.",
              "9:16 aspect ratio.",
              "16:9 aspect ratio.",
              "21:9 aspect ratio.",
              "1:8 aspect ratio.",
              "8:1 aspect ratio.",
              "1:4 aspect ratio.",
              "4:1 aspect ratio."
            ],
            "type": "string",
            "enum": [
              "ASPECT_RATIO_UNSPECIFIED",
              "ASPECT_RATIO_ONE_BY_ONE",
              "ASPECT_RATIO_TWO_BY_THREE",
              "ASPECT_RATIO_THREE_BY_TWO",
              "ASPECT_RATIO_THREE_BY_FOUR",
              "ASPECT_RATIO_FOUR_BY_THREE",
              "ASPECT_RATIO_FOUR_BY_FIVE",
              "ASPECT_RATIO_FIVE_BY_FOUR",
              "ASPECT_RATIO_NINE_BY_SIXTEEN",
              "ASPECT_RATIO_SIXTEEN_BY_NINE",
              "ASPECT_RATIO_TWENTY_ONE_BY_NINE",
              "ASPECT_RATIO_ONE_BY_EIGHT",
              "ASPECT_RATIO_EIGHT_BY_ONE",
              "ASPECT_RATIO_ONE_BY_FOUR",
              "ASPECT_RATIO_FOUR_BY_ONE"
            ],
            "description": "Optional. The aspect ratio for the image output."
          },
          "imageSize": {
            "type": "string",
            "enum": [
              "IMAGE_SIZE_UNSPECIFIED",
              "IMAGE_SIZE_FIVE_TWELVE",
              "IMAGE_SIZE_ONE_K",
              "IMAGE_SIZE_TWO_K",
              "IMAGE_SIZE_FOUR_K"
            ],
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "512px image size.",
              "1K image size.",
              "2K image size.",
              "4K image size."
            ],
            "description": "Optional. The size of the image output."
          }
        },
        "description": "Configuration for image output format."
      },
      "InlinedEmbedContentResponses": {
        "description": "The responses to the requests in the batch.",
        "type": "object",
        "properties": {
          "inlinedResponses": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/InlinedEmbedContentResponse"
            },
            "description": "Output only. The responses to the requests in the batch."
          }
        }
      },
      "SafetyFeedback": {
        "description": "Safety feedback for an entire request.\n\nThis field is populated if content in the input and/or response is blocked\ndue to safety settings. SafetyFeedback may not exist for every HarmCategory.\nEach SafetyFeedback will return the safety settings used by the request as\nwell as the lowest HarmProbability that should be allowed in order to return\na result.",
        "properties": {
          "setting": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SafetySetting"
              }
            ],
            "description": "Safety settings applied to the request."
          },
          "rating": {
            "description": "Safety rating evaluated from content.",
            "allOf": [
              {
                "$ref": "#/components/schemas/SafetyRating"
              }
            ]
          }
        },
        "type": "object"
      },
      "ListCorporaResponse": {
        "description": "Response from `ListCorpora` containing a paginated list of `Corpora`.\nThe results are sorted by ascending `corpus.create_time`.",
        "type": "object",
        "properties": {
          "corpora": {
            "description": "The returned corpora.",
            "items": {
              "$ref": "#/components/schemas/Corpus"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no more pages.",
            "type": "string"
          }
        }
      },
      "Permission": {
        "description": "Permission resource grants user, group or the rest of the world access to the\nPaLM API resource (e.g. a tuned model, corpus).\n\nA role is a collection of permitted operations that allows users to perform\nspecific actions on PaLM API resources. To make them available to users,\ngroups, or service accounts, you assign roles. When you assign a role, you\ngrant permissions that the role contains.\n\nThere are three concentric roles. Each role is a superset of the previous\nrole's permitted operations:\n\n- reader can use the resource (e.g. tuned model, corpus) for inference\n- writer has reader's permissions and additionally can edit and share\n- owner has writer's permissions and additionally can delete",
        "type": "object",
        "required": [
          "role"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Output only. Identifier. The permission name. A unique name will be generated on create.\nExamples:\n    tunedModels/{tuned_model}/permissions/{permission}\n    corpora/{corpus}/permissions/{permission}\nOutput only.",
            "readOnly": true,
            "x-google-identifier": true
          },
          "role": {
            "type": "string",
            "enum": [
              "ROLE_UNSPECIFIED",
              "OWNER",
              "WRITER",
              "READER"
            ],
            "x-google-enum-descriptions": [
              "The default value. This value is unused.",
              "Owner can use, update, share and delete the resource.",
              "Writer can use, update and share the resource.",
              "Reader can use the resource."
            ],
            "description": "Required. The role granted by this permission."
          },
          "granteeType": {
            "description": "Optional. Immutable. The type of the grantee.",
            "type": "string",
            "enum": [
              "GRANTEE_TYPE_UNSPECIFIED",
              "USER",
              "GROUP",
              "EVERYONE"
            ],
            "x-google-immutable": true,
            "x-google-enum-descriptions": [
              "The default value. This value is unused.",
              "Represents a user. When set, you must provide email_address for the user.",
              "Represents a group. When set, you must provide email_address for the\ngroup.",
              "Represents access to everyone. No extra information is required."
            ]
          },
          "emailAddress": {
            "description": "Optional. Immutable. The email address of the user of group which this permission refers.\nField is not set when permission's grantee type is EVERYONE.",
            "x-google-immutable": true,
            "type": "string"
          }
        }
      },
      "DiffDownloadResponse": {
        "type": "object",
        "properties": {
          "objectLocation": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CompositeMedia"
              }
            ],
            "description": "The original object location."
          }
        },
        "description": "Backend response for a Diff download response.\nFor details on the Scotty Diff protocol,\nvisit http://go/scotty-diff-protocol."
      },
      "Embedding": {
        "type": "object",
        "properties": {
          "value": {
            "items": {
              "format": "float",
              "type": "number"
            },
            "description": "The embedding values.",
            "type": "array"
          }
        },
        "description": "A list of floats representing the embedding."
      },
      "Video": {
        "description": "Representation of a video.",
        "type": "object",
        "properties": {
          "uri": {
            "description": "Path to another storage.",
            "type": "string"
          },
          "video": {
            "type": "string",
            "format": "byte",
            "description": "Raw bytes."
          }
        }
      },
      "InlinedEmbedContentRequest": {
        "type": "object",
        "properties": {
          "metadata": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "type": "object",
            "description": "Optional. The metadata to be associated with the request."
          },
          "request": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentRequest"
              }
            ],
            "description": "Required. The request to be processed in the batch."
          }
        },
        "required": [
          "request"
        ],
        "description": "The request to be processed in the batch."
      },
      "FileSearch": {
        "properties": {
          "fileSearchStoreNames": {
            "items": {
              "type": "string"
            },
            "description": "Required. The names of the file_search_stores to retrieve from.\nExample: `fileSearchStores/my-file-search-store-123`",
            "type": "array"
          },
          "metadataFilter": {
            "description": "Optional. Metadata filter to apply to the semantic retrieval documents and chunks.",
            "type": "string"
          },
          "topK": {
            "format": "int32",
            "description": "Optional. The number of semantic retrieval chunks to retrieve.",
            "type": "integer"
          }
        },
        "type": "object",
        "required": [
          "fileSearchStoreNames"
        ],
        "description": "The FileSearch tool that retrieves knowledge from Semantic Retrieval corpora.\nFiles are imported to Semantic Retrieval corpora using the ImportFile API."
      },
      "SessionResumptionConfig": {
        "description": "Session resumption configuration.\n\nThis message is included in the session configuration as\n`BidiGenerateContentSetup.session_resumption`. If configured, the server\nwill send `SessionResumptionUpdate` messages.",
        "type": "object",
        "properties": {
          "handle": {
            "description": "The handle of a previous session. If not present then a new session is\ncreated.\n\nSession handles come from `SessionResumptionUpdate.token` values in\nprevious connections.",
            "type": "string"
          }
        }
      },
      "LatLng": {
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "description": "The latitude in degrees. It must be in the range [-90.0, +90.0].",
            "format": "double"
          },
          "longitude": {
            "description": "The longitude in degrees. It must be in the range [-180.0, +180.0].",
            "format": "double",
            "type": "number"
          }
        },
        "description": "An object that represents a latitude/longitude pair. This is expressed as a\npair of doubles to represent degrees latitude and degrees longitude. Unless\nspecified otherwise, this object must conform to the\nWGS84 standard. Values must be within normalized ranges."
      },
      "UsageMetadata": {
        "properties": {
          "serviceTier": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ServiceTier"
              }
            ],
            "description": "Output only. Service tier of the request."
          },
          "candidatesTokenCount": {
            "format": "int32",
            "description": "Total number of tokens across all the generated response candidates.",
            "type": "integer"
          },
          "cachedContentTokenCount": {
            "format": "int32",
            "description": "Number of tokens in the cached part of the prompt (the cached content)",
            "type": "integer"
          },
          "candidatesTokensDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            },
            "description": "Output only. List of modalities that were returned in the response.",
            "readOnly": true
          },
          "toolUsePromptTokensDetails": {
            "type": "array",
            "readOnly": true,
            "description": "Output only. List of modalities that were processed for tool-use request inputs.",
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            }
          },
          "totalTokenCount": {
            "description": "Total token count for the generation request (prompt + tool-use prompt +\nthoughts + response candidates).",
            "format": "int32",
            "type": "integer"
          },
          "promptTokensDetails": {
            "type": "array",
            "readOnly": true,
            "description": "Output only. List of modalities that were processed in the request input.",
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            }
          },
          "thoughtsTokenCount": {
            "format": "int32",
            "description": "Output only. Number of tokens of thoughts for thinking models.",
            "type": "integer",
            "readOnly": true
          },
          "toolUsePromptTokenCount": {
            "description": "Output only. Number of tokens present in tool-use prompt(s).",
            "type": "integer",
            "readOnly": true,
            "format": "int32"
          },
          "promptTokenCount": {
            "format": "int32",
            "description": "Number of tokens in the prompt. When `cached_content` is set, this is\nstill the total effective prompt size meaning this includes the number of\ntokens in the cached content.",
            "type": "integer"
          },
          "cacheTokensDetails": {
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            },
            "readOnly": true,
            "type": "array",
            "description": "Output only. List of modalities of the cached content in the request input."
          }
        },
        "description": "Metadata on the generation request's token usage.",
        "type": "object"
      },
      "SafetySetting": {
        "properties": {
          "category": {
            "description": "Required. The category for this setting.",
            "allOf": [
              {
                "$ref": "#/components/schemas/HarmCategory"
              }
            ]
          },
          "threshold": {
            "x-google-enum-descriptions": [
              "Threshold is unspecified.",
              "Content with NEGLIGIBLE will be allowed.",
              "Content with NEGLIGIBLE and LOW will be allowed.",
              "Content with NEGLIGIBLE, LOW, and MEDIUM will be allowed.",
              "All content will be allowed.",
              "Turn off the safety filter."
            ],
            "type": "string",
            "enum": [
              "HARM_BLOCK_THRESHOLD_UNSPECIFIED",
              "BLOCK_LOW_AND_ABOVE",
              "BLOCK_MEDIUM_AND_ABOVE",
              "BLOCK_ONLY_HIGH",
              "BLOCK_NONE",
              "OFF"
            ],
            "description": "Required. Controls the probability threshold at which harm is blocked."
          }
        },
        "required": [
          "category",
          "threshold"
        ],
        "description": "Safety setting, affecting the safety-blocking behavior.\n\nPassing a safety setting for a category changes the allowed probability that\ncontent is blocked.",
        "type": "object"
      },
      "DiffUploadRequest": {
        "type": "object",
        "properties": {
          "objectInfo": {
            "description": "The location of the new object.\nAgents must clone the object located here, as the upload server will\ndelete the contents once a response is received.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompositeMedia"
              }
            ]
          },
          "objectVersion": {
            "description": "The object version of the object that is the base version the incoming\ndiff script will be applied to.\nThis field will always be filled in.",
            "type": "string"
          },
          "checksumsInfo": {
            "description": "The location of the checksums for the new object.\nAgents must clone the object located here, as the upload server will\ndelete the contents once a response is received.\nFor details on the format of the checksums,\nsee http://go/scotty-diff-protocol.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompositeMedia"
              }
            ]
          }
        },
        "description": "A Diff upload request.\nFor details on the Scotty Diff protocol,\nvisit http://go/scotty-diff-protocol."
      },
      "TextCompletion": {
        "description": "Output text returned from a model.",
        "type": "object",
        "properties": {
          "safetyRatings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SafetyRating"
            },
            "description": "Ratings for the safety of a response.\n\nThere is at most one rating per category."
          },
          "citationMetadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CitationMetadata"
              }
            ],
            "readOnly": true,
            "description": "Output only. Citation information for model-generated `output` in this\n`TextCompletion`.\n\nThis field may be populated with attribution information for any text\nincluded in the `output`."
          },
          "output": {
            "readOnly": true,
            "description": "Output only. The generated text returned from the model.",
            "type": "string"
          }
        }
      },
      "GdataMedia": {
        "description": "A reference to data stored on the filesystem, on GFS or in blobstore.",
        "type": "object",
        "properties": {
          "md5Hash": {
            "description": "Scotty-provided MD5 hash for an upload.",
            "format": "byte",
            "type": "string"
          },
          "hashVerified": {
            "description": "For Scotty uploads only. If a user sends a hash code and the backend has\nrequested that Scotty verify the upload against the client hash,\nScotty will perform the check on behalf of the backend and will reject it\nif the hashes don't match. This is set to true if Scotty performed\nthis verification.",
            "type": "boolean"
          },
          "algorithm": {
            "description": "Deprecated, use one of explicit hash type fields instead.\nAlgorithm used for calculating the hash.\nAs of 2011/01/21, \"MD5\" is the only possible value for this field.\nNew values may be added at any time.",
            "deprecated": true,
            "type": "string"
          },
          "blobRef": {
            "deprecated": true,
            "format": "byte",
            "type": "string",
            "description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF\nThis should be the byte representation of a blobstore.BlobRef.\nSince Blobstore is deprecating v1, use blobstore2_info instead.\nFor now, any v2 blob will also be represented in this field as\nv1 BlobRef."
          },
          "token": {
            "description": "A unique fingerprint/version id for the media data",
            "type": "string"
          },
          "diffUploadResponse": {
            "description": "Set if reference_type is DIFF_UPLOAD_RESPONSE.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DiffUploadResponse"
              }
            ]
          },
          "objectId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ObjectId"
              }
            ],
            "description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF."
          },
          "sha1Hash": {
            "type": "string",
            "format": "byte",
            "description": "Scotty-provided SHA1 hash for an upload."
          },
          "contentTypeInfo": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContentTypeInfo"
              }
            ],
            "description": "Extended content type information provided for Scotty uploads."
          },
          "diffUploadRequest": {
            "description": "Set if reference_type is DIFF_UPLOAD_REQUEST.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DiffUploadRequest"
              }
            ]
          },
          "timestamp": {
            "description": "Time at which the media data was last updated,\nin milliseconds since UNIX epoch",
            "format": "uint64",
            "type": "string"
          },
          "inline": {
            "format": "byte",
            "type": "string",
            "description": "Media data, set if reference_type is INLINE"
          },
          "filename": {
            "description": "Original file name",
            "type": "string"
          },
          "diffDownloadResponse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/DiffDownloadResponse"
              }
            ],
            "description": "Set if reference_type is DIFF_DOWNLOAD_RESPONSE."
          },
          "diffVersionResponse": {
            "description": "Set if reference_type is DIFF_VERSION_RESPONSE.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DiffVersionResponse"
              }
            ]
          },
          "sha512Hash": {
            "type": "string",
            "description": "Scotty-provided SHA512 hash for an upload.",
            "format": "byte"
          },
          "bigstoreObjectRef": {
            "type": "string",
            "description": "Use object_id instead.",
            "format": "byte",
            "deprecated": true
          },
          "isPotentialRetry": {
            "type": "boolean",
            "description": "|is_potential_retry| is set false only when Scotty is\ncertain that it has not sent the request before. When a client resumes\nan upload, this field must be set true in agent calls, because Scotty\ncannot be certain that it has never sent the request before due\nto potential failure in the session state persistence."
          },
          "contentType": {
            "type": "string",
            "description": "MIME type of the data"
          },
          "blobstore2Info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Blobstore2Info"
              }
            ],
            "description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers\nto a v2 blob."
          },
          "length": {
            "type": "string",
            "description": "Size of the data, in bytes",
            "format": "int64"
          },
          "hash": {
            "deprecated": true,
            "description": "Deprecated, use one of explicit hash type fields instead.\nThese two hash related fields will only be populated on Scotty based media\nuploads and will contain the content of the hash group in the\nNotificationRequest:\nhttp://cs/#google3/blobstore2/api/scotty/service/proto/upload_listener.proto&q=class:Hash\nHex encoded hash value of the uploaded media.",
            "type": "string"
          },
          "compositeMedia": {
            "items": {
              "$ref": "#/components/schemas/CompositeMedia"
            },
            "type": "array",
            "description": "A composite media composed of one or more media objects, set if\nreference_type is COMPOSITE_MEDIA. The media length field must be set\nto the sum of the lengths of all composite media objects.\n\nNote: All composite media must have length specified."
          },
          "cosmoBinaryReference": {
            "description": "A binary data reference for a media download. Serves as a\ntechnology-agnostic binary reference in some Google infrastructure.\nThis value is a serialized storage_cosmo.BinaryReference proto. Storing\nit as bytes is a hack to get around the fact that the cosmo proto\n(as well as others it includes) doesn't support JavaScript. This\nprevents us from including the actual type of this field.",
            "type": "string",
            "format": "byte"
          },
          "diffChecksumsResponse": {
            "description": "Set if reference_type is DIFF_CHECKSUMS_RESPONSE.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DiffChecksumsResponse"
              }
            ]
          },
          "downloadParameters": {
            "description": "Parameters for a media download.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DownloadParameters"
              }
            ]
          },
          "path": {
            "description": "Path to the data, set if reference_type is PATH",
            "type": "string"
          },
          "crc32cHash": {
            "maximum": 4294967295,
            "type": "integer",
            "description": "For Scotty Uploads:\nScotty-provided hashes for uploads\n\nFor Scotty Downloads:\n(WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.)\nA Hash provided by the agent to be used to verify the data being\ndownloaded. Currently only supported for inline payloads.\nFurther, only crc32c_hash is currently supported.",
            "minimum": 0,
            "format": "int64"
          },
          "mediaId": {
            "description": "Media id to forward to the operation GetMedia.\nCan be set if reference_type is GET_MEDIA.",
            "type": "string",
            "format": "byte"
          },
          "sha256Hash": {
            "type": "string",
            "format": "byte",
            "description": "Scotty-provided SHA256 hash for an upload."
          },
          "referenceType": {
            "type": "string",
            "enum": [
              "PATH",
              "BLOB_REF",
              "INLINE",
              "GET_MEDIA",
              "COMPOSITE_MEDIA",
              "BIGSTORE_REF",
              "DIFF_VERSION_RESPONSE",
              "DIFF_CHECKSUMS_RESPONSE",
              "DIFF_DOWNLOAD_RESPONSE",
              "DIFF_UPLOAD_REQUEST",
              "DIFF_UPLOAD_RESPONSE",
              "COSMO_BINARY_REFERENCE",
              "ARBITRARY_BYTES"
            ],
            "x-google-enum-descriptions": [
              "Reference contains a GFS path or a local path.",
              "Reference points to a blobstore object. This could be either\na v1 blob_ref or a v2 blobstore2_info. Clients should check\nblobstore2_info first, since v1 is being deprecated.",
              "Data is included into this proto buffer",
              "Data should be accessed from the current service\nusing the operation GetMedia.",
              "The content for this media object is stored across\nmultiple partial media objects under the\ncomposite_media field.",
              "Reference points to a bigstore object",
              "Indicates the data is stored in diff_version_response.",
              "Indicates the data is stored in diff_checksums_response.",
              "Indicates the data is stored in diff_download_response.",
              "Indicates the data is stored in diff_upload_request.",
              "Indicates the data is stored in diff_upload_response.",
              "Indicates the data is stored in cosmo_binary_reference.",
              "Informs Scotty to generate a response payload with the size specified\nin the length field. The contents of the payload are generated by\nScotty and are undefined. This is useful for testing download speeds\nbetween the user and Scotty without involving a real payload source.\n\nNote: range is not supported when using arbitrary_bytes."
            ],
            "description": "Describes what the field reference contains."
          }
        }
      },
      "CountMessageTokensRequest": {
        "description": "Counts the number of tokens in the `prompt` sent to a model.\n\nModels may tokenize text differently, so each model may return a different\n`token_count`.",
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "description": "Required. The prompt, whose token count is to be returned.",
            "allOf": [
              {
                "$ref": "#/components/schemas/MessagePrompt"
              }
            ]
          }
        },
        "type": "object"
      },
      "ImportFileOperation": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/ImportFileMetadata"
              },
              "response": {
                "$ref": "#/components/schemas/ImportFileResponse"
              }
            },
            "type": "object"
          }
        ],
        "type": "object",
        "description": "This resource represents a long-running operation where metadata and response fields are strongly typed."
      },
      "GroundingPassageId": {
        "description": "Identifier for a part within a `GroundingPassage`.",
        "properties": {
          "passageId": {
            "readOnly": true,
            "type": "string",
            "description": "Output only. ID of the passage matching the `GenerateAnswerRequest`'s\n`GroundingPassage.id`."
          },
          "partIndex": {
            "description": "Output only. Index of the part within the `GenerateAnswerRequest`'s\n`GroundingPassage.content`.",
            "readOnly": true,
            "type": "integer",
            "format": "int32"
          }
        },
        "type": "object"
      },
      "SpeakerVoiceConfig": {
        "required": [
          "speaker",
          "voiceConfig"
        ],
        "description": "The configuration for a single speaker in a multi speaker setup.",
        "type": "object",
        "properties": {
          "voiceConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/VoiceConfig"
              }
            ],
            "description": "Required. The configuration for the voice to use."
          },
          "speaker": {
            "description": "Required. The name of the speaker to use. Should be the same as in the prompt.",
            "type": "string"
          }
        }
      },
      "GroundingAttribution": {
        "description": "Attribution for a source that contributed to an answer.",
        "type": "object",
        "properties": {
          "content": {
            "description": "Grounding source content that makes up this attribution.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ]
          },
          "sourceId": {
            "description": "Output only. Identifier for the source contributing to this attribution.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AttributionSourceId"
              }
            ],
            "readOnly": true
          }
        }
      },
      "HarmCategory": {
        "x-google-enum-deprecated": [
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          false,
          true,
          false
        ],
        "type": "string",
        "enum": [
          "HARM_CATEGORY_UNSPECIFIED",
          "HARM_CATEGORY_DEROGATORY",
          "HARM_CATEGORY_TOXICITY",
          "HARM_CATEGORY_VIOLENCE",
          "HARM_CATEGORY_SEXUAL",
          "HARM_CATEGORY_MEDICAL",
          "HARM_CATEGORY_DANGEROUS",
          "HARM_CATEGORY_HARASSMENT",
          "HARM_CATEGORY_HATE_SPEECH",
          "HARM_CATEGORY_SEXUALLY_EXPLICIT",
          "HARM_CATEGORY_DANGEROUS_CONTENT",
          "HARM_CATEGORY_CIVIC_INTEGRITY",
          "HARM_CATEGORY_JAILBREAK"
        ],
        "x-google-enum-descriptions": [
          "Category is unspecified.",
          "**PaLM** - Negative or harmful comments targeting identity and/or protected\nattribute.",
          "**PaLM** - Content that is rude, disrespectful, or profane.",
          "**PaLM** - Describes scenarios depicting violence against an individual or\ngroup, or general descriptions of gore.",
          "**PaLM** - Contains references to sexual acts or other lewd content.",
          "**PaLM** - Promotes unchecked medical advice.",
          "**PaLM** - Dangerous content that promotes, facilitates, or encourages\nharmful acts.",
          "**Gemini** - Harassment content.",
          "**Gemini** - Hate speech and content.",
          "**Gemini** - Sexually explicit content.",
          "**Gemini** - Dangerous content.",
          "**Gemini** - Content that may be used to harm civic integrity.\nDEPRECATED: use enable_enhanced_civic_answers instead.",
          "**Gemini** - Prompts attempting to bypass or subvert the model's safety\nguidelines (jailbreak attempts)."
        ]
      },
      "DownloadMediaResponse": {
        "type": "object",
        "description": "Response for DownloadMedia.",
        "properties": {
          "blob": {
            "readOnly": true,
            "description": "Output only. The blob data.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GdataMedia"
              }
            ]
          }
        }
      },
      "ResponseFormatConfig": {
        "properties": {
          "image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageResponseFormat"
              }
            ],
            "description": "Optional. Image output format configuration."
          },
          "text": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TextResponseFormat"
              }
            ],
            "description": "Optional. Text output format configuration."
          },
          "audio": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AudioResponseFormat"
              }
            ],
            "description": "Optional. Audio output format configuration."
          }
        },
        "description": "Configuration for the response output format. This is a flat object\nwhere each optional sub-field configures a specific output modality.",
        "type": "object"
      },
      "PredictLongRunningGeneratedVideoResponse": {
        "type": "object",
        "description": "Veo response.",
        "properties": {
          "generatedSamples": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Media"
            },
            "description": "The generated samples."
          },
          "raiMediaFilteredCount": {
            "description": "Returns if any videos were filtered due to RAI policies.",
            "type": "integer",
            "format": "int32"
          },
          "raiMediaFilteredReasons": {
            "description": "Returns rai failure reasons if any.",
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PredictLongRunningResponse": {
        "type": "object",
        "description": "Response message for [PredictionService.PredictLongRunning]",
        "properties": {
          "generateVideoResponse": {
            "description": "The response of the video generation prediction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PredictLongRunningGeneratedVideoResponse"
              }
            ]
          }
        }
      },
      "BatchStats": {
        "type": "object",
        "properties": {
          "successfulRequestCount": {
            "type": "string",
            "format": "int64",
            "readOnly": true,
            "description": "Output only. The number of requests that were successfully processed."
          },
          "pendingRequestCount": {
            "type": "string",
            "format": "int64",
            "readOnly": true,
            "description": "Output only. The number of requests that are still pending processing."
          },
          "failedRequestCount": {
            "type": "string",
            "description": "Output only. The number of requests that failed to be processed.",
            "format": "int64",
            "readOnly": true
          },
          "requestCount": {
            "format": "int64",
            "type": "string",
            "readOnly": true,
            "description": "Output only. The number of requests in the batch."
          }
        },
        "description": "Stats about the batch."
      },
      "GetEnvironmentFilesResponse": {
        "description": "Response for `GetEnvironmentFiles`.",
        "type": "object",
        "properties": {
          "next_page_token": {
            "type": "string",
            "description": "Pagination token for directory listing.\nNOLINT"
          },
          "files": {
            "items": {
              "$ref": "#/components/schemas/EnvironmentFile"
            },
            "type": "array",
            "description": "If the requested path is a directory, this contains its contents.\nIf the requested path is a file, this contains a single entry with the\nfile's metadata.\nIf alt=media was specified, this is empty (content is served via `blob`)."
          }
        }
      },
      "ListOperationsResponse": {
        "description": "The response message for Operations.ListOperations.",
        "type": "object",
        "properties": {
          "operations": {
            "description": "A list of operations that matches the specified filter in the request.",
            "items": {
              "$ref": "#/components/schemas/Operation"
            },
            "type": "array"
          },
          "unreachable": {
            "x-google-unordered-list": true,
            "type": "array",
            "description": "Unordered list. Unreachable resources. Populated when the request sets\n`ListOperationsRequest.return_partial_success` and reads across\ncollections. For example, when attempting to list all resources across all\nsupported locations.",
            "items": {
              "type": "string"
            }
          },
          "nextPageToken": {
            "description": "The standard List next-page token.",
            "type": "string"
          }
        }
      },
      "Content": {
        "description": "The base structured datatype containing multi-part content of a message.\n\nA `Content` includes a `role` field designating the producer of the `Content`\nand a `parts` field containing multi-part data that contains the content of\nthe message turn.",
        "properties": {
          "parts": {
            "items": {
              "$ref": "#/components/schemas/Part"
            },
            "description": "Ordered `Parts` that constitute a single message. Parts may have different\nMIME types.",
            "type": "array"
          },
          "role": {
            "description": "Optional. The producer of the content. Must be either 'user' or 'model'.\n\nUseful to set for multi-turn conversations, otherwise can be left blank\nor unset.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "DownloadFileResponse": {
        "type": "object",
        "description": "Response for `DownloadFile`."
      },
      "FileData": {
        "description": "URI based data.",
        "required": [
          "fileUri"
        ],
        "type": "object",
        "properties": {
          "fileUri": {
            "type": "string",
            "description": "Required. URI."
          },
          "mimeType": {
            "type": "string",
            "description": "Optional. The IANA standard MIME type of the source data."
          },
          "displayName": {
            "description": "Optional. Specifies the name used to refer to this file to the model (e.g.\n\"my_file.pdf\"). Used as the file reference identifier when\n`verbalization_mode` is set to `REFERENCE_ONLY`.",
            "type": "string"
          }
        }
      },
      "CustomLongRunningOperation": {
        "type": "object",
        "properties": {
          "response": {
            "type": "object",
            "description": "The normal, successful response of the operation.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "metadata": {
            "type": "object",
            "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
            "additionalProperties": {
              "description": "Properties of the object. Contains field @type with type URL."
            }
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status"
              }
            ],
            "description": "The error result of the operation in case of failure or cancellation."
          },
          "done": {
            "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`."
          }
        }
      },
      "EgressRule": {
        "properties": {
          "mode": {
            "description": "Network egress mode. Set via the `\"allowlist\": \"disabled\"` short form;\nmust be the only rule in the allowlist and cannot be combined with\n`domain`, `transform` or `credential`.",
            "type": "string",
            "enum": [
              "NETWORK_MODE_UNSPECIFIED",
              "DISABLED"
            ],
            "x-google-enum-descriptions": [
              "Default value. Unused.",
              "All network egress is blocked."
            ]
          },
          "transform": {
            "description": "Headers to inject into requests matching this rule.\nKey: header name (e.g., \"Authorization\").\nValue: header value (e.g., \"Bearer your-token\").",
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "domain": {
            "description": "Domain to allow outbound requests to. Supports wildcards (e.g.\n'*.googleapis.com'). Use '*' to allow all domains.",
            "type": "string"
          },
          "credential": {
            "description": "Optional. Reference to a server-managed Credential resource by ID.",
            "type": "string"
          }
        },
        "description": "A single domain allowlist rule with optional header injection.",
        "type": "object"
      },
      "InputEmbedContentConfig": {
        "description": "Configures the input to the batch request.",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "The name of the `File` containing the input requests."
          },
          "requests": {
            "description": "The requests to be processed in the batch.",
            "allOf": [
              {
                "$ref": "#/components/schemas/InlinedEmbedContentRequests"
              }
            ]
          }
        },
        "type": "object"
      },
      "ContextWindowCompressionConfig": {
        "description": "Enables context window compression — a mechanism for managing the model's\ncontext window so that it does not exceed a given length.",
        "type": "object",
        "properties": {
          "slidingWindow": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SlidingWindow"
              }
            ],
            "description": "A sliding-window mechanism."
          },
          "triggerTokens": {
            "description": "The number of tokens (before running a turn) required to trigger a context\nwindow compression.\n\nThis can be used to balance quality against latency as shorter context\nwindows may result in faster model responses. However, any compression\noperation will cause a temporary latency increase, so they should not be\ntriggered frequently.\n\nIf not set, the default is 80% of the model's context window limit. This\nleaves 20% for the next user request/model response.",
            "type": "string",
            "format": "int64"
          }
        }
      },
      "EmbedTextRequest": {
        "required": [
          "model"
        ],
        "description": "Request to get a text embedding from the model.",
        "type": "object",
        "properties": {
          "text": {
            "description": "Optional. The free-form input text that the model will turn into an embedding.",
            "type": "string"
          },
          "model": {
            "description": "Required. The model name to use with the format model=models/{model}.",
            "type": "string"
          }
        }
      },
      "Dataset": {
        "type": "object",
        "properties": {
          "examples": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TuningExamples"
              }
            ],
            "description": "Optional. Inline examples with simple input/output text."
          }
        },
        "description": "Dataset for training or validation."
      },
      "SemanticRetrieverConfig": {
        "required": [
          "source",
          "query"
        ],
        "type": "object",
        "properties": {
          "metadataFilters": {
            "items": {
              "$ref": "#/components/schemas/MetadataFilter"
            },
            "type": "array",
            "description": "Optional. Filters for selecting `Document`s and/or `Chunk`s from the resource."
          },
          "query": {
            "description": "Required. Query to use for matching `Chunk`s in the given resource by similarity.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ]
          },
          "minimumRelevanceScore": {
            "format": "float",
            "description": "Optional. Minimum relevance score for retrieved relevant `Chunk`s.",
            "type": "number"
          },
          "maxChunksCount": {
            "description": "Optional. Maximum number of relevant `Chunk`s to retrieve.",
            "format": "int32",
            "type": "integer"
          },
          "source": {
            "type": "string",
            "description": "Required. Name of the resource for retrieval. Example: `corpora/123` or\n`corpora/123/documents/abc`."
          }
        },
        "description": "Configuration for retrieving grounding content from a `Corpus` or\n`Document` created using the Semantic Retriever API."
      },
      "TopCandidates": {
        "type": "object",
        "properties": {
          "candidates": {
            "items": {
              "$ref": "#/components/schemas/LogprobsResultCandidate"
            },
            "type": "array",
            "description": "Sorted by log probability in descending order."
          }
        },
        "description": "Candidates with top log probabilities at each decoding step."
      },
      "Condition": {
        "required": [
          "operation"
        ],
        "description": "Filter condition applicable to a single key.",
        "properties": {
          "stringValue": {
            "description": "The string value to filter the metadata on.",
            "type": "string"
          },
          "operation": {
            "x-google-enum-descriptions": [
              "The default value. This value is unused.",
              "Supported by numeric.",
              "Supported by numeric.",
              "Supported by numeric & string.",
              "Supported by numeric.",
              "Supported by numeric.",
              "Supported by numeric & string.",
              "Supported by string only when `CustomMetadata` value type for the given\nkey has a `string_list_value`.",
              "Supported by string only when `CustomMetadata` value type for the given\nkey has a `string_list_value`."
            ],
            "type": "string",
            "enum": [
              "OPERATOR_UNSPECIFIED",
              "LESS",
              "LESS_EQUAL",
              "EQUAL",
              "GREATER_EQUAL",
              "GREATER",
              "NOT_EQUAL",
              "INCLUDES",
              "EXCLUDES"
            ],
            "description": "Required. Operator applied to the given key-value pair to trigger the condition."
          },
          "numericValue": {
            "format": "float",
            "description": "The numeric value to filter the metadata on.",
            "type": "number"
          }
        },
        "type": "object"
      },
      "DiffVersionResponse": {
        "description": "Backend response for a Diff get version response.\nFor details on the Scotty Diff protocol,\nvisit http://go/scotty-diff-protocol.",
        "properties": {
          "objectVersion": {
            "description": "The version of the object stored at the server.",
            "type": "string"
          },
          "objectSizeBytes": {
            "description": "The total size of the server object.",
            "type": "string",
            "format": "int64"
          }
        },
        "type": "object"
      },
      "CreateTunedModelOperation": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "type": "object",
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/CreateTunedModelMetadata"
              },
              "response": {
                "$ref": "#/components/schemas/TunedModel"
              }
            }
          }
        ],
        "description": "This resource represents a long-running operation where metadata and response fields are strongly typed."
      },
      "GenerateContentBatchOutput": {
        "description": "The output of a batch request. This is returned in the\n`BatchGenerateContentResponse` or the `GenerateContentBatch.output` field.",
        "type": "object",
        "properties": {
          "responsesFile": {
            "description": "Output only. The file ID of the file containing the responses.\nThe file will be a JSONL file with a single response per line.\nThe responses will be `GenerateContentResponse` messages formatted as\nJSON.\nThe responses will be written in the same order as the input requests.",
            "readOnly": true,
            "type": "string"
          },
          "inlinedResponses": {
            "description": "Output only. The responses to the requests in the batch. Returned when the batch was\nbuilt using inlined requests. The responses will be in the same order as\nthe input requests.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/InlinedResponses"
              }
            ]
          }
        }
      },
      "GroundingChunkCustomMetadata": {
        "properties": {
          "key": {
            "description": "The key of the metadata.",
            "type": "string"
          },
          "stringValue": {
            "description": "Optional. The string value of the metadata.",
            "type": "string"
          },
          "numericValue": {
            "description": "Optional. The numeric value of the metadata.\nThe expected range for this value depends on the specific `key` used.",
            "type": "number",
            "format": "float"
          },
          "stringListValue": {
            "description": "Optional. A list of string values for the metadata.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GroundingChunkStringList"
              }
            ]
          }
        },
        "description": "User provided metadata about the GroundingFact.",
        "type": "object"
      },
      "ActivityHandling": {
        "x-google-enum-descriptions": [
          "If unspecified, the default behavior is `START_OF_ACTIVITY_INTERRUPTS`.",
          "If true, start of activity will interrupt the model's response (also\ncalled \"barge in\"). The model's current response will be cut-off in the\nmoment of the interruption. This is the default behavior.",
          "The model's response will not be interrupted."
        ],
        "type": "string",
        "enum": [
          "ACTIVITY_HANDLING_UNSPECIFIED",
          "START_OF_ACTIVITY_INTERRUPTS",
          "NO_INTERRUPTION"
        ]
      },
      "GenerateContentBatch": {
        "required": [
          "model",
          "displayName",
          "inputConfig"
        ],
        "properties": {
          "createTime": {
            "description": "Output only. The time at which the batch was created.",
            "type": "string",
            "format": "date-time",
            "readOnly": true
          },
          "priority": {
            "description": "Optional. The priority of the batch. Batches with a higher priority value will be\nprocessed before batches with a lower priority value. Negative values are\nallowed. Default is 0.",
            "format": "int64",
            "type": "string"
          },
          "endTime": {
            "format": "date-time",
            "type": "string",
            "description": "Output only. The time at which the batch processing completed.",
            "readOnly": true
          },
          "model": {
            "description": "Required. The name of the `Model` to use for generating the completion.\n\nFormat: `models/{model}`.",
            "type": "string"
          },
          "displayName": {
            "description": "Required. The user-defined name of this batch.",
            "type": "string"
          },
          "state": {
            "description": "Output only. The state of the batch.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BatchState"
              }
            ]
          },
          "inputConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InputConfig"
              }
            ],
            "description": "Required. Input configuration of the instances on which batch processing\nare performed."
          },
          "updateTime": {
            "description": "Output only. The time at which the batch was last updated.",
            "readOnly": true,
            "type": "string",
            "format": "date-time"
          },
          "batchStats": {
            "description": "Output only. Stats about the batch.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BatchStats"
              }
            ]
          },
          "output": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerateContentBatchOutput"
              }
            ],
            "description": "Output only. The output of the batch request."
          },
          "name": {
            "type": "string",
            "x-google-identifier": true,
            "readOnly": true,
            "description": "Output only. Identifier. Resource name of the batch.\n\nFormat: `batches/{batch_id}`."
          }
        },
        "description": "A resource representing a batch of `GenerateContent` requests.",
        "type": "object"
      },
      "Schema": {
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Optional. A brief description of the parameter. This could contain examples of use.\nParameter description may be formatted as Markdown."
          },
          "minItems": {
            "description": "Optional. Minimum number of the elements for Type.ARRAY.",
            "format": "int64",
            "type": "string"
          },
          "minimum": {
            "format": "double",
            "description": "Optional. SCHEMA FIELDS FOR TYPE INTEGER and NUMBER\nMinimum value of the Type.INTEGER and Type.NUMBER",
            "type": "number"
          },
          "maxProperties": {
            "type": "string",
            "format": "int64",
            "description": "Optional. Maximum number of the properties for Type.OBJECT."
          },
          "format": {
            "description": "Optional. The format of the data. Any value is allowed, but most do not trigger any\nspecial functionality.",
            "type": "string"
          },
          "maximum": {
            "description": "Optional. Maximum value of the Type.INTEGER and Type.NUMBER",
            "type": "number",
            "format": "double"
          },
          "default": {
            "description": "Optional. Default value of the field. Per JSON Schema, this field is intended for\ndocumentation generators and doesn't affect validation. Thus it's included\nhere and ignored so that developers who send schemas with a `default` field\ndon't get unknown-field errors."
          },
          "properties": {
            "additionalProperties": {
              "$ref": "#/components/schemas/Schema"
            },
            "type": "object",
            "description": "Optional. Properties of Type.OBJECT."
          },
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Type"
              }
            ],
            "description": "Required. Data type."
          },
          "enum": {
            "items": {
              "type": "string"
            },
            "description": "Optional. Possible values of the element of Type.STRING with enum format.\nFor example we can define an Enum Direction as :\n{type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}",
            "type": "array"
          },
          "required": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional. Required properties of Type.OBJECT."
          },
          "example": {
            "description": "Optional. Example of the object. Will only populated when the object is the root."
          },
          "maxItems": {
            "format": "int64",
            "description": "Optional. Maximum number of the elements for Type.ARRAY.",
            "type": "string"
          },
          "pattern": {
            "type": "string",
            "description": "Optional. Pattern of the Type.STRING to restrict a string to a regular expression."
          },
          "items": {
            "description": "Optional. Schema of the elements of Type.ARRAY.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Schema"
              }
            ]
          },
          "propertyOrdering": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "description": "Optional. The order of the properties.\nNot a standard field in open api spec. Used to determine the order of the\nproperties in the response."
          },
          "nullable": {
            "description": "Optional. Indicates if the value may be null.",
            "type": "boolean"
          },
          "anyOf": {
            "type": "array",
            "description": "Optional. The value should be validated against any (one or more) of the subschemas\nin the list.",
            "items": {
              "$ref": "#/components/schemas/Schema"
            }
          },
          "maxLength": {
            "type": "string",
            "description": "Optional. Maximum length of the Type.STRING",
            "format": "int64"
          },
          "minProperties": {
            "description": "Optional. Minimum number of the properties for Type.OBJECT.",
            "format": "int64",
            "type": "string"
          },
          "minLength": {
            "type": "string",
            "format": "int64",
            "description": "Optional. SCHEMA FIELDS FOR TYPE STRING\nMinimum length of the Type.STRING"
          },
          "title": {
            "description": "Optional. The title of the schema.",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "description": "The `Schema` object allows the definition of input and output data types.\nThese types can be objects, but also primitives and arrays.\nRepresents a select subset of an [OpenAPI 3.0 schema\nobject](https://spec.openapis.org/oas/v3.0.3#schema)."
      },
      "GenerateMessageRequest": {
        "type": "object",
        "properties": {
          "temperature": {
            "type": "number",
            "description": "Optional. Controls the randomness of the output.\n\nValues can range over `[0.0,1.0]`,\ninclusive. A value closer to `1.0` will produce responses that are more\nvaried, while a value closer to `0.0` will typically result in\nless surprising responses from the model.",
            "format": "float"
          },
          "candidateCount": {
            "type": "integer",
            "format": "int32",
            "description": "Optional. The number of generated response messages to return.\n\nThis value must be between\n`[1, 8]`, inclusive. If unset, this will default to `1`."
          },
          "prompt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/MessagePrompt"
              }
            ],
            "description": "Required. The structured textual input given to the model as a prompt.\n\nGiven a\nprompt, the model will return what it predicts is the next message in the\ndiscussion."
          },
          "topK": {
            "format": "int32",
            "type": "integer",
            "description": "Optional. The maximum number of tokens to consider when sampling.\n\nThe model uses combined Top-k and nucleus sampling.\n\nTop-k sampling considers the set of `top_k` most probable tokens."
          },
          "topP": {
            "format": "float",
            "description": "Optional. The maximum cumulative probability of tokens to consider when sampling.\n\nThe model uses combined Top-k and nucleus sampling.\n\nNucleus sampling considers the smallest set of tokens whose probability\nsum is at least `top_p`.",
            "type": "number"
          }
        },
        "description": "Request to generate a message response from the model.",
        "required": [
          "prompt"
        ]
      },
      "Blobstore2Info": {
        "type": "object",
        "description": "Information to read/write to blobstore2.",
        "properties": {
          "uploadMetadataContainer": {
            "description": "Metadata passed from Blobstore -\u003e Scotty for a new GCS upload.\nThis is a signed, serialized blobstore2.BlobMetadataContainer proto which\nmust never be consumed outside of Bigstore, and is not applicable to\nnon-GCS media uploads.",
            "format": "byte",
            "type": "string"
          },
          "downloadExternalReadToken": {
            "type": "string",
            "format": "byte",
            "description": "A serialized External Read Token passed from Bigstore -\u003e Scotty for a GCS\ndownload. This field must never be consumed outside of Bigstore, and is not\napplicable to non-GCS media uploads."
          },
          "blobGeneration": {
            "type": "string",
            "format": "int64",
            "description": "The blob generation id."
          },
          "uploadFragmentListCreationInfo": {
            "type": "string",
            "description": "A serialized Object Fragment List Creation Info passed from Bigstore -\u003e\nScotty for a GCS upload. This field must never be consumed outside of\nBigstore, and is not applicable to non-GCS media uploads.",
            "format": "byte"
          },
          "readToken": {
            "description": "The blob read token. Needed to read blobs that have not been\nreplicated. Might not be available until the final call.",
            "type": "string"
          },
          "blobId": {
            "type": "string",
            "description": "The blob id, e.g., /blobstore/prod/playground/scotty"
          },
          "downloadReadHandle": {
            "description": "Read handle passed from Bigstore -\u003e Scotty for a GCS download.\nThis is a signed, serialized blobstore2.ReadHandle proto which must never\nbe set outside of Bigstore, and is not applicable to non-GCS media\ndownloads.",
            "type": "string",
            "format": "byte"
          }
        }
      },
      "EmbedTextResponse": {
        "type": "object",
        "description": "The response to a EmbedTextRequest.",
        "properties": {
          "embedding": {
            "readOnly": true,
            "description": "Output only. The embedding generated from the input text.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Embedding"
              }
            ]
          }
        }
      },
      "CustomMetadata": {
        "type": "object",
        "required": [
          "key"
        ],
        "description": "User provided metadata stored as key-value pairs.",
        "properties": {
          "numericValue": {
            "description": "The numeric value of the metadata to store.",
            "format": "float",
            "type": "number"
          },
          "key": {
            "description": "Required. The key of the metadata to store.",
            "type": "string"
          },
          "stringValue": {
            "description": "The string value of the metadata to store.",
            "type": "string"
          },
          "stringListValue": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StringList"
              }
            ],
            "description": "The StringList value of the metadata to store."
          }
        }
      },
      "Operation": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "properties": {
              "metadata": {
                "type": "object",
                "description": "Service-specific metadata associated with the operation.  It typically\ncontains progress information and common metadata such as create time.\nSome services might not provide such metadata.  Any method that returns a\nlong-running operation should document the metadata type, if any.",
                "additionalProperties": {
                  "description": "Properties of the object. Contains field @type with type URL."
                }
              },
              "response": {
                "type": "object",
                "description": "The normal, successful response of the operation.  If the original\nmethod returns no data on success, such as `Delete`, the response is\n`google.protobuf.Empty`.  If the original method is standard\n`Get`/`Create`/`Update`, the response should be the resource.  For other\nmethods, the response should have the type `XxxResponse`, where `Xxx`\nis the original method name.  For example, if the original method name\nis `TakeSnapshot()`, the inferred response type is\n`TakeSnapshotResponse`.",
                "additionalProperties": {
                  "description": "Properties of the object. Contains field @type with type URL."
                }
              }
            },
            "type": "object"
          }
        ],
        "description": "This resource represents a long-running operation that is the result of a\nnetwork API call.",
        "type": "object"
      },
      "EmbedContentBatchOutput": {
        "properties": {
          "inlinedResponses": {
            "readOnly": true,
            "description": "Output only. The responses to the requests in the batch. Returned when the batch was\nbuilt using inlined requests. The responses will be in the same order as\nthe input requests.",
            "allOf": [
              {
                "$ref": "#/components/schemas/InlinedEmbedContentResponses"
              }
            ]
          },
          "responsesFile": {
            "description": "Output only. The file ID of the file containing the responses.\nThe file will be a JSONL file with a single response per line.\nThe responses will be `EmbedContentResponse` messages formatted as JSON.\nThe responses will be written in the same order as the input requests.",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object",
        "description": "The output of a batch request. This is returned in the\n`AsyncBatchEmbedContentResponse` or the `EmbedContentBatch.output` field."
      },
      "RealtimeInputConfig": {
        "description": "Configures the realtime input behavior in `BidiGenerateContent`.",
        "type": "object",
        "properties": {
          "interimTranscriptTimestampEnabled": {
            "description": "Optional. Configures interim transcript timestamps.",
            "type": "boolean"
          },
          "turnCoverage": {
            "x-google-enum-descriptions": [
              "If unspecified, a default behavior is selected based on the model. E.g.,\nfor Gemini 2.5, the default is `TURN_INCLUDES_ONLY_ACTIVITY`, while for\nGemini 3.1 and onwards, it's\n`TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO`.",
              "Includes activity since the last turn, excluding inactivity (e.g. silence\non the audio stream).",
              "Includes all realtime input since the last turn, including inactivity\n(e.g. silence on the audio stream).",
              "Includes audio activity and all video since the last turn. With automatic\nactivity detection, audio activity means speech and excludes silence."
            ],
            "description": "Optional. Defines which input is included in the user's turn.",
            "type": "string",
            "enum": [
              "TURN_COVERAGE_UNSPECIFIED",
              "TURN_INCLUDES_ONLY_ACTIVITY",
              "TURN_INCLUDES_ALL_INPUT",
              "TURN_INCLUDES_AUDIO_ACTIVITY_AND_ALL_VIDEO"
            ]
          },
          "activityHandling": {
            "description": "Optional. Defines what effect activity has.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ActivityHandling"
              }
            ]
          },
          "automaticActivityDetection": {
            "description": "Optional. If not set, automatic activity detection is enabled by default. If\nautomatic voice detection is disabled, the client must send activity\nsignals.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AutomaticActivityDetection"
              }
            ]
          }
        }
      },
      "InlinedRequests": {
        "properties": {
          "requests": {
            "items": {
              "$ref": "#/components/schemas/InlinedRequest"
            },
            "description": "Required. The requests to be processed in the batch.",
            "type": "array"
          }
        },
        "required": [
          "requests"
        ],
        "description": "The requests to be processed in the batch if provided as part of the\nbatch creation request.",
        "type": "object"
      },
      "BatchGenerateContentOperation": {
        "type": "object",
        "description": "This resource represents a long-running operation where metadata and response fields are strongly typed.",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "type": "object",
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/GenerateContentBatch"
              },
              "response": {
                "$ref": "#/components/schemas/BatchGenerateContentResponse"
              }
            }
          }
        ]
      },
      "UploadToFileSearchStoreResponse": {
        "description": "Response from UploadToFileSearchStore.",
        "type": "object",
        "properties": {
          "parent": {
            "type": "string",
            "description": "The name of the `FileSearchStore` containing `Document`s.\nExample: `fileSearchStores/my-file-search-store-123`"
          },
          "sizeBytes": {
            "description": "Size of the file in bytes.",
            "format": "int64",
            "type": "string"
          },
          "mimeType": {
            "description": "MIME type of the file.",
            "type": "string"
          },
          "documentName": {
            "x-google-identifier": true,
            "type": "string",
            "description": "Immutable. Identifier. The identifier for the `Document` imported.\nExample: `fileSearchStores/my-file-search-store-123a456b789c`",
            "x-google-immutable": true
          }
        }
      },
      "BidiGenerateContentSetup": {
        "properties": {
          "tools": {
            "type": "array",
            "description": "Optional. A list of `Tools` the model may use to generate the next response.\n\nA `Tool` is a piece of code that enables the system to interact with\nexternal systems to perform an action, or set of actions, outside of\nknowledge and scope of the model.",
            "items": {
              "$ref": "#/components/schemas/Tool"
            }
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "description": "Optional. Labels with user-defined metadata for the request.\n\nOptional. Labels must follow standard unified Cloud label requirements:\n- Label keys must start with a letter.\n- Label keys and values can be no longer than 63 characters (Unicode\n  codepoints) and can only contain lowercase letters, numeric characters,\n  underscores, and dashes.\n- International characters are allowed.\n\nUsage:\n-  Safety identifiers from aggregators: Use the key `safety_identifier`\n   (e.g. `{\"safety_identifier\": \"user_session_123\"}`)"
          },
          "outputAudioTranscription": {
            "description": "Optional. If set, enables transcription of the model's audio output. The\ntranscription aligns with the language code specified for the output\naudio, if configured.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AudioTranscriptionConfig"
              }
            ]
          },
          "realtimeInputConfig": {
            "description": "Optional. Configures the handling of realtime input.",
            "allOf": [
              {
                "$ref": "#/components/schemas/RealtimeInputConfig"
              }
            ]
          },
          "systemInstruction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ],
            "description": "Optional. The user provided system instructions for the model.\n\nNote: Only text should be used in parts and content in each part will be\nin a separate paragraph."
          },
          "contextWindowCompression": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ContextWindowCompressionConfig"
              }
            ],
            "description": "Optional. Configures a context window compression mechanism.\n\nIf included, the server will automatically reduce the size of the context\nwhen it exceeds the configured length."
          },
          "model": {
            "description": "Required. The model's resource name. This serves as an ID for the Model to use.\n\nFormat: `models/{model}`",
            "type": "string"
          },
          "historyConfig": {
            "description": "Optional. Configures the exchange of history between the client and the server.",
            "allOf": [
              {
                "$ref": "#/components/schemas/HistoryConfig"
              }
            ]
          },
          "generationConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerationConfig"
              }
            ],
            "description": "Optional. Generation config.\n\nThe following fields are not supported:\n\n - `response_logprobs`\n - `response_mime_type`\n - `logprobs`\n - `response_schema`\n - `response_json_schema`\n - `stop_sequence`\n - `skip_response_cache`\n - `routing_config`\n - `audio_timestamp`"
          },
          "inputAudioTranscription": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AudioTranscriptionConfig"
              }
            ],
            "description": "Optional. If set, enables transcription of voice input. The transcription aligns\nwith the input audio language, if configured."
          },
          "sessionResumption": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SessionResumptionConfig"
              }
            ],
            "description": "Optional. Configures session resumption mechanism.\n\nIf included, the server will send `SessionResumptionUpdate` messages."
          }
        },
        "required": [
          "model"
        ],
        "description": "Message to be sent in the first (and only in the first)\n`BidiGenerateContentClientMessage`. Contains configuration that will apply\nfor the duration of the streaming RPC.\n\nClients should wait for a `BidiGenerateContentSetupComplete` message before\nsending any additional messages.",
        "type": "object"
      },
      "TuningExamples": {
        "properties": {
          "examples": {
            "type": "array",
            "description": "The examples. Example input can be for text or discuss, but all examples\nin a set must be of the same type.",
            "items": {
              "$ref": "#/components/schemas/TuningExample"
            }
          }
        },
        "description": "A set of tuning examples. Can be training or validation data.",
        "type": "object"
      },
      "V1mainMediaResolution": {
        "description": "Media resolution for tokenization.",
        "type": "object",
        "properties": {
          "level": {
            "x-google-enum-descriptions": [
              "Media resolution has not been set.",
              "Media resolution set to low.",
              "Media resolution set to medium.",
              "Media resolution set to high.",
              "Media resolution set to ultra high."
            ],
            "type": "string",
            "enum": [
              "MEDIA_RESOLUTION_UNSPECIFIED",
              "MEDIA_RESOLUTION_LOW",
              "MEDIA_RESOLUTION_MEDIUM",
              "MEDIA_RESOLUTION_HIGH",
              "MEDIA_RESOLUTION_ULTRA_HIGH"
            ],
            "description": "The tokenization quality used for given media.\n for Gemini API support ."
          }
        }
      },
      "ListEnvironmentsResponse": {
        "properties": {
          "environments": {
            "type": "array",
            "description": "Environments belonging to the provided project.",
            "items": {
              "$ref": "#/components/schemas/Environment"
            }
          },
          "nextPageToken": {
            "type": "string",
            "description": "Pagination token."
          }
        },
        "type": "object",
        "description": "Response for `ListEnvironments`."
      },
      "CitationSource": {
        "properties": {
          "endIndex": {
            "description": "Optional. End of the attributed segment, exclusive.",
            "format": "int32",
            "type": "integer"
          },
          "license": {
            "description": "Optional. License for the GitHub project that is attributed as a source for segment.\n\nLicense info is required for code citations.",
            "type": "string"
          },
          "uri": {
            "type": "string",
            "description": "Optional. URI that is attributed as a source for a portion of the text."
          },
          "startIndex": {
            "type": "integer",
            "format": "int32",
            "description": "Optional. Start of segment of the response that is attributed to this source.\n\nIndex indicates the start of the segment, measured in bytes."
          }
        },
        "type": "object",
        "description": "A citation to a source for a portion of a specific response."
      },
      "TransferOwnershipRequest": {
        "type": "object",
        "description": "Request to transfer the ownership of the tuned model.",
        "required": [
          "emailAddress"
        ],
        "properties": {
          "emailAddress": {
            "description": "Required. The email address of the user to whom the tuned model is being transferred\nto.",
            "type": "string"
          }
        }
      },
      "EmbedContentRequest": {
        "description": "Request containing the `Content` for the model to embed.",
        "type": "object",
        "properties": {
          "model": {
            "description": "Required. The model's resource name. This serves as an ID for the Model to use.\n\nThis name should match a model name returned by the `ListModels` method.\n\nFormat: `models/{model}`",
            "type": "string"
          },
          "content": {
            "description": "Required. The content to embed. Only the `parts.text` fields will be counted.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ]
          },
          "outputDimensionality": {
            "deprecated": true,
            "format": "int32",
            "description": "Optional. Deprecated: Please use EmbedContentConfig.output_dimensionality instead.\nOptional reduced dimension for the output embedding. If set, excessive\nvalues in the output embedding are truncated from the end. Supported by\nnewer models since 2024 only. You cannot set this value if using the\nearlier model (`models/embedding-001`).",
            "type": "integer"
          },
          "taskType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaskType"
              }
            ],
            "description": "Optional. Deprecated: Please use EmbedContentConfig.task_type instead.\nOptional task type for which the embeddings will be used. Not supported on\nearlier models (`models/embedding-001`).",
            "deprecated": true
          },
          "embedContentConfig": {
            "description": "Optional. Configuration for the EmbedContent request.",
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentConfig"
              }
            ]
          },
          "title": {
            "deprecated": true,
            "description": "Optional. Deprecated: Please use EmbedContentConfig.title instead.\nAn optional title for the text. Only applicable when TaskType is\n`RETRIEVAL_DOCUMENT`.\n\nNote: Specifying a `title` for `RETRIEVAL_DOCUMENT` provides better quality\nembeddings for retrieval.",
            "type": "string"
          }
        },
        "required": [
          "model",
          "content"
        ]
      },
      "GoogleSearchRetrieval": {
        "type": "object",
        "description": "Tool to retrieve public web data for grounding, powered by Google.",
        "properties": {
          "dynamicRetrievalConfig": {
            "description": "Specifies the dynamic retrieval configuration for the given source.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DynamicRetrievalConfig"
              }
            ]
          }
        }
      },
      "VoiceConfig": {
        "properties": {
          "prebuiltVoiceConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PrebuiltVoiceConfig"
              }
            ],
            "description": "The configuration for the prebuilt voice to use."
          },
          "voice": {
            "description": "Optional. The speaker identifier for synthesis.\nSupported formats:\n\n*   Speaker name for prebuilt voices (for example, `Orus` or `Kore`).\n*   Voice ID for stored voices (for example, `voice_xxx`).\n*   Voice replication key (for example, `voicekey_xxx`).",
            "type": "string"
          }
        },
        "description": "The configuration for the voice to use.",
        "type": "object"
      },
      "RetrievalMetadata": {
        "properties": {
          "googleSearchDynamicRetrievalScore": {
            "format": "float",
            "type": "number",
            "description": "Optional. Score indicating how likely information from google search could help\nanswer the prompt. The score is in the range [0, 1], where 0 is the least\nlikely and 1 is the most likely. This score is only populated when\ngoogle search grounding and dynamic retrieval is enabled. It will be\ncompared to the threshold to determine whether to trigger google search."
          }
        },
        "type": "object",
        "description": "Metadata related to retrieval in the grounding flow."
      },
      "DiffUploadResponse": {
        "description": "Backend response for a Diff upload request.\nFor details on the Scotty Diff protocol,\nvisit http://go/scotty-diff-protocol.",
        "type": "object",
        "properties": {
          "originalObject": {
            "description": "The location of the original file for a diff upload request. Must be\nfilled in if responding to an upload start notification.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompositeMedia"
              }
            ]
          },
          "objectVersion": {
            "description": "The object version of the object at the server. Must be included in the\nend notification response.\nThe version in the end notification response must correspond to the new\nversion of the object that is now stored at the server, after the upload.",
            "type": "string"
          }
        }
      },
      "VideoFileMetadata": {
        "type": "object",
        "properties": {
          "videoDuration": {
            "description": "Duration of the video.",
            "type": "string",
            "format": "google-duration"
          }
        },
        "description": "Metadata for a video `File`."
      },
      "EmbedContentBatch": {
        "description": "A resource representing a batch of `EmbedContent` requests.",
        "type": "object",
        "required": [
          "model",
          "displayName",
          "inputConfig"
        ],
        "properties": {
          "batchStats": {
            "readOnly": true,
            "description": "Output only. Stats about the batch.",
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentBatchStats"
              }
            ]
          },
          "displayName": {
            "type": "string",
            "description": "Required. The user-defined name of this batch."
          },
          "updateTime": {
            "readOnly": true,
            "description": "Output only. The time at which the batch was last updated.",
            "format": "date-time",
            "type": "string"
          },
          "name": {
            "type": "string",
            "x-google-identifier": true,
            "description": "Output only. Identifier. Resource name of the batch.\n\nFormat: `batches/{batch_id}`.",
            "readOnly": true
          },
          "model": {
            "description": "Required. The name of the `Model` to use for generating the completion.\n\nFormat: `models/{model}`.",
            "type": "string"
          },
          "output": {
            "description": "Output only. The output of the batch request.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentBatchOutput"
              }
            ]
          },
          "inputConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/InputEmbedContentConfig"
              }
            ],
            "description": "Required. Input configuration of the instances on which batch processing\nare performed."
          },
          "state": {
            "description": "Output only. The state of the batch.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BatchState"
              }
            ]
          },
          "createTime": {
            "readOnly": true,
            "format": "date-time",
            "type": "string",
            "description": "Output only. The time at which the batch was created."
          },
          "priority": {
            "format": "int64",
            "type": "string",
            "description": "Optional. The priority of the batch. Batches with a higher priority value will be\nprocessed before batches with a lower priority value. Negative values are\nallowed. Default is 0."
          },
          "endTime": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "description": "Output only. The time at which the batch processing completed."
          }
        }
      },
      "File": {
        "description": "A file uploaded to the API.\nNext ID: 15",
        "type": "object",
        "properties": {
          "sizeBytes": {
            "readOnly": true,
            "type": "string",
            "format": "int64",
            "description": "Output only. Size of the file in bytes."
          },
          "source": {
            "description": "Source of the File.",
            "type": "string",
            "enum": [
              "SOURCE_UNSPECIFIED",
              "UPLOADED",
              "GENERATED",
              "REGISTERED"
            ],
            "x-google-enum-descriptions": [
              "Used if source is not specified.",
              "Indicates the file is uploaded by the user.",
              "Indicates the file is generated by Google.",
              "Indicates the file is a registered, i.e. a Google Cloud Storage file."
            ]
          },
          "updateTime": {
            "description": "Output only. The timestamp of when the `File` was last updated.",
            "readOnly": true,
            "type": "string",
            "format": "date-time"
          },
          "uri": {
            "readOnly": true,
            "description": "Output only. The uri of the `File`.",
            "type": "string"
          },
          "name": {
            "x-google-identifier": true,
            "x-google-immutable": true,
            "type": "string",
            "description": "Immutable. Identifier. The `File` resource name. The ID (name excluding the \"files/\" prefix) can\ncontain up to 40 characters that are lowercase alphanumeric or dashes (-).\nThe ID cannot start or end with a dash. If the name is empty on create, a\nunique name will be generated.\nExample: `files/123-456`"
          },
          "sha256Hash": {
            "readOnly": true,
            "format": "byte",
            "type": "string",
            "description": "Output only. SHA-256 hash of the uploaded bytes."
          },
          "mimeType": {
            "readOnly": true,
            "description": "Output only. MIME type of the file.",
            "type": "string"
          },
          "state": {
            "description": "Output only. Processing state of the File.",
            "type": "string",
            "enum": [
              "STATE_UNSPECIFIED",
              "PROCESSING",
              "ACTIVE",
              "FAILED"
            ],
            "x-google-enum-descriptions": [
              "The default value. This value is used if the state is omitted.",
              "File is being processed and cannot be used for inference yet.",
              "File is processed and available for inference.",
              "File failed processing."
            ],
            "readOnly": true
          },
          "videoMetadata": {
            "readOnly": true,
            "description": "Output only. Metadata for a video.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VideoFileMetadata"
              }
            ]
          },
          "expirationTime": {
            "readOnly": true,
            "type": "string",
            "format": "date-time",
            "description": "Output only. The timestamp of when the `File` will be deleted. Only set if the `File` is\nscheduled to expire."
          },
          "error": {
            "description": "Output only. Error status if File processing failed.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Status"
              }
            ],
            "readOnly": true
          },
          "displayName": {
            "description": "Optional. The human-readable display name for the `File`. The display name must be\nno more than 512 characters in length, including spaces.\nExample: \"Welcome Image\"",
            "type": "string"
          },
          "createTime": {
            "type": "string",
            "description": "Output only. The timestamp of when the `File` was created.",
            "readOnly": true,
            "format": "date-time"
          },
          "downloadUri": {
            "description": "Output only. The download uri of the `File`.",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "InlinedEmbedContentRequests": {
        "type": "object",
        "description": "The requests to be processed in the batch if provided as part of the\nbatch creation request.",
        "properties": {
          "requests": {
            "description": "Required. The requests to be processed in the batch.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InlinedEmbedContentRequest"
            }
          }
        },
        "required": [
          "requests"
        ]
      },
      "UploadToFileSearchStoreOperation": {
        "type": "object",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "type": "object",
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/UploadToFileSearchStoreMetadata"
              },
              "response": {
                "$ref": "#/components/schemas/UploadToFileSearchStoreResponse"
              }
            }
          }
        ],
        "description": "This resource represents a long-running operation where metadata and response fields are strongly typed."
      },
      "CachedContent": {
        "description": "Content that has been preprocessed and can be used in subsequent request\nto GenerativeService.\n\nCached content can be only used with model it was created for.",
        "type": "object",
        "properties": {
          "contents": {
            "writeOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Content"
            },
            "description": "Optional. Input only. Immutable. The content to cache.",
            "x-google-immutable": true
          },
          "displayName": {
            "description": "Optional. Immutable. The user-generated meaningful display name of the cached content. Maximum\n128 Unicode characters.",
            "x-google-immutable": true,
            "type": "string"
          },
          "updateTime": {
            "readOnly": true,
            "description": "Output only. When the cache entry was last updated in UTC time.",
            "type": "string",
            "format": "date-time"
          },
          "usageMetadata": {
            "description": "Output only. Metadata on the usage of the cached content.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CachedContentUsageMetadata"
              }
            ]
          },
          "model": {
            "x-google-immutable": true,
            "description": "Required. Immutable. The name of the `Model` to use for cached content\nFormat: `models/{model}`",
            "type": "string"
          },
          "ttl": {
            "type": "string",
            "description": "Input only. New TTL for this resource, input only.",
            "format": "google-duration",
            "writeOnly": true
          },
          "name": {
            "description": "Output only. Identifier. The resource name referring to the cached content.\nFormat: `cachedContents/{id}`",
            "readOnly": true,
            "type": "string",
            "x-google-identifier": true
          },
          "expireTime": {
            "format": "date-time",
            "description": "Timestamp in UTC of when this resource is considered expired.\nThis is *always* provided on output, regardless of what was sent\non input.",
            "type": "string"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/Tool"
            },
            "type": "array",
            "writeOnly": true,
            "description": "Optional. Input only. Immutable. A list of `Tools` the model may use to generate the next response",
            "x-google-immutable": true
          },
          "toolConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ToolConfig"
              }
            ],
            "writeOnly": true,
            "description": "Optional. Input only. Immutable. Tool config. This config is shared for all tools.",
            "x-google-immutable": true
          },
          "systemInstruction": {
            "writeOnly": true,
            "x-google-immutable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ],
            "description": "Optional. Input only. Immutable. Developer set system instruction. Currently text only."
          },
          "createTime": {
            "readOnly": true,
            "format": "date-time",
            "type": "string",
            "description": "Output only. Creation time of the cache entry."
          }
        },
        "required": [
          "model"
        ]
      },
      "GenerationConfig": {
        "description": "Configuration options for model generation and outputs. Not all parameters\nare configurable for every model.",
        "type": "object",
        "properties": {
          "logprobs": {
            "type": "integer",
            "description": "Optional. Only valid if response_logprobs=True.\nThis sets the number of top logprobs, including the chosen candidate, to\nreturn at each decoding step in the Candidate.logprobs_result. The\nnumber must be in the range of [0, 20].",
            "format": "int32"
          },
          "frequencyPenalty": {
            "type": "number",
            "format": "float",
            "description": "Optional. Frequency penalty applied to the next token's logprobs, multiplied by the\nnumber of times each token has been seen in the respponse so far.\n\nA positive penalty will discourage the use of tokens that have already\nbeen used, proportional to the number of times the token has been used:\nThe more a token is used, the more difficult it is for the model to use\nthat token again increasing the vocabulary of responses.\n\nCaution: A _negative_ penalty will encourage the model to reuse tokens\nproportional to the number of times the token has been used. Small\nnegative values will reduce the vocabulary of a response. Larger negative\nvalues will cause the model to start repeating a common token  until it\nhits the max_output_tokens\nlimit."
          },
          "responseSchema": {
            "description": "Optional. Output schema of the generated candidate text. Schemas must be a\nsubset of the [OpenAPI schema](https://spec.openapis.org/oas/v3.0.3#schema)\nand can be objects, primitives or arrays.\n\nIf set, a compatible `response_mime_type` must also be set.\nCompatible MIME types:\n`application/json`: Schema for JSON response.\nRefer to the [JSON text generation\nguide](https://ai.google.dev/gemini-api/docs/json-mode) for more details.\n\nDeprecated. Use `response_format` instead.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Schema"
              }
            ],
            "deprecated": true
          },
          "maxOutputTokens": {
            "description": "Optional. The maximum number of tokens to include in a response candidate.\n\nNote: The default value varies by model, see the `Model.output_token_limit`\nattribute of the `Model` returned from the `getModel` function.",
            "format": "int32",
            "type": "integer"
          },
          "responseJsonSchema": {
            "description": "Optional. An internal detail. Use `responseJsonSchema` rather than this field."
          },
          "responseModalities": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "MODALITY_UNSPECIFIED",
                "TEXT",
                "IMAGE",
                "AUDIO"
              ],
              "x-google-enum-descriptions": [
                "Default value.",
                "Indicates the model should return text.",
                "Indicates the model should return images.",
                "Indicates the model should return audio."
              ]
            },
            "description": "Optional. The requested modalities of the response. Represents the set of modalities\nthat the model can return, and should be expected in the response. This is\nan exact match to the modalities of the response.\n\nA model may have multiple combinations of supported modalities. If the\nrequested modalities do not match any of the supported combinations, an\nerror will be returned.\n\nAn empty list is equivalent to requesting only text."
          },
          "_responseJsonSchema": {
            "deprecated": true,
            "description": "Optional. Output schema of the generated response. This is an alternative to\n`response_schema` that accepts [JSON Schema](https://json-schema.org/).\n\nIf set, `response_schema` must be omitted, but `response_mime_type` is\nrequired.\n\nWhile the full JSON Schema may be sent, not all features are supported.\nSpecifically, only the following properties are supported:\n\n- `$id`\n- `$defs`\n- `$ref`\n- `$anchor`\n- `type`\n- `format`\n- `title`\n- `description`\n- `enum` (for strings and numbers)\n- `items`\n- `prefixItems`\n- `minItems`\n- `maxItems`\n- `minimum`\n- `maximum`\n- `anyOf`\n- `oneOf` (interpreted the same as `anyOf`)\n- `properties`\n- `additionalProperties`\n- `required`\n\nThe non-standard `propertyOrdering` property may also be set.\n\nCyclic references are unrolled to a limited degree and, as such, may only\nbe used within non-required properties. (Nullable properties are not\nsufficient.) If `$ref` is set on a sub-schema, no other properties, except\nfor than those starting as a `$`, may be set.\n\nDeprecated. Use `response_format` instead."
          },
          "topK": {
            "type": "integer",
            "description": "Optional. The maximum number of tokens to consider when sampling.\n\nGemini models use Top-p (nucleus) sampling or a combination of Top-k and\nnucleus sampling. Top-k sampling considers the set of `top_k` most probable\ntokens. Models running with nucleus sampling don't allow top_k setting.\n\nNote: The default value varies by `Model` and is specified by\nthe`Model.top_p` attribute returned from the `getModel` function. An empty\n`top_k` attribute indicates that the model doesn't apply top-k sampling\nand doesn't allow setting `top_k` on requests.",
            "format": "int32"
          },
          "enableEnhancedCivicAnswers": {
            "description": "Optional. Enables enhanced civic answers. It may not be available for all models.",
            "type": "boolean"
          },
          "candidateCount": {
            "description": "Optional. Number of generated responses to return. If unset, this will default\nto 1. Please note that this doesn't work for previous generation\nmodels (Gemini 1.0 family)",
            "type": "integer",
            "format": "int32"
          },
          "temperature": {
            "format": "float",
            "type": "number",
            "description": "Optional. Controls the randomness of the output.\n\nNote: The default value varies by model, see the `Model.temperature`\nattribute of the `Model` returned from the `getModel` function.\n\nValues can range from [0.0, 2.0]."
          },
          "responseMimeType": {
            "description": "Optional. MIME type of the generated candidate text.\nSupported MIME types are:\n`text/plain`: (default) Text output.\n`application/json`: JSON response in the response candidates.\n`text/x.enum`: ENUM as a string response in the response candidates.\nRefer to the\n[docs](https://ai.google.dev/gemini-api/docs/prompting_with_media#plain_text_formats)\nfor a list of all supported text MIME types.",
            "type": "string"
          },
          "speechConfig": {
            "description": "Optional. The speech generation config.",
            "allOf": [
              {
                "$ref": "#/components/schemas/SpeechConfig"
              }
            ]
          },
          "enableAffectiveDialog": {
            "type": "boolean",
            "description": "Optional. If enabled, the model will detect emotions and adapt its responses\naccordingly."
          },
          "mediaResolution": {
            "description": "Optional. If specified, the media resolution specified will be used.",
            "type": "string",
            "enum": [
              "MEDIA_RESOLUTION_UNSPECIFIED",
              "MEDIA_RESOLUTION_LOW",
              "MEDIA_RESOLUTION_MEDIUM",
              "MEDIA_RESOLUTION_HIGH"
            ],
            "x-google-enum-descriptions": [
              "Media resolution has not been set.",
              "Media resolution set to low (64 tokens).",
              "Media resolution set to medium (256 tokens).",
              "Media resolution set to high (zoomed reframing with 256 tokens)."
            ]
          },
          "responseLogprobs": {
            "type": "boolean",
            "description": "Optional. If true, export the logprobs results in response."
          },
          "topP": {
            "description": "Optional. The maximum cumulative probability of tokens to consider when sampling.\n\nThe model uses combined Top-k and Top-p (nucleus) sampling.\n\nTokens are sorted based on their assigned probabilities so that only the\nmost likely tokens are considered. Top-k sampling directly limits the\nmaximum number of tokens to consider, while Nucleus sampling limits the\nnumber of tokens based on the cumulative probability.\n\nNote: The default value varies by `Model` and is specified by\nthe`Model.top_p` attribute returned from the `getModel` function. An empty\n`top_k` attribute indicates that the model doesn't apply top-k sampling\nand doesn't allow setting `top_k` on requests.",
            "type": "number",
            "format": "float"
          },
          "thinkingConfig": {
            "description": "Optional. Config for thinking features.\nAn error will be returned if this field is set for models that don't\nsupport thinking.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ThinkingConfig"
              }
            ]
          },
          "seed": {
            "format": "int32",
            "type": "integer",
            "description": "Optional. Seed used in decoding. If not set, the request uses a randomly generated\nseed."
          },
          "translationConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TranslationConfig"
              }
            ],
            "description": "Optional. Config for translation."
          },
          "audioTranscriptionConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/AudioTranscriptionConfig"
              }
            ],
            "description": "Optional. Config for audio transcription (speech recognition)."
          },
          "responseFormat": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ResponseFormatConfig"
              }
            ],
            "description": "Optional. Configuration for the response output format. Allows specifying output\nconfiguration per modality (text, audio, image) in a flat structure."
          },
          "presencePenalty": {
            "type": "number",
            "description": "Optional. Presence penalty applied to the next token's logprobs if the token has\nalready been seen in the response.\n\nThis penalty is binary on/off and not dependant on the number of times the\ntoken is used (after the first). Use\nfrequency_penalty\nfor a penalty that increases with each use.\n\nA positive penalty will discourage the use of tokens that have already\nbeen used in the response, increasing the vocabulary.\n\nA negative penalty will encourage the use of tokens that have already been\nused in the response, decreasing the vocabulary.",
            "format": "float"
          },
          "imageConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageConfig"
              }
            ],
            "description": "Optional. Config for image generation.\nAn error will be returned if this field is set for models that don't\nsupport these config options."
          },
          "stopSequences": {
            "description": "Optional. The set of character sequences (up to 5) that will stop output generation.\nIf specified, the API will stop at the first appearance of a\n`stop_sequence`. The stop sequence will not be included as part of the\nresponse.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        }
      },
      "UploadToFileSearchStoreMetadata": {
        "type": "object",
        "description": "Metadata for LongRunning UploadToFileSearchStore Operations."
      },
      "PredictLongRunningOperation": {
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/PredictLongRunningMetadata"
              },
              "response": {
                "$ref": "#/components/schemas/PredictLongRunningResponse"
              }
            },
            "type": "object"
          }
        ],
        "type": "object",
        "description": "This resource represents a long-running operation where metadata and response fields are strongly typed."
      },
      "TunedModel": {
        "required": [
          "tuningTask"
        ],
        "properties": {
          "updateTime": {
            "description": "Output only. The timestamp when this model was updated.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "Optional. A short description of this model.",
            "type": "string"
          },
          "name": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. The tuned model name. A unique name will be generated on create.\nExample: `tunedModels/az2mb0bpw6i`\nIf display_name is set on create, the id portion of the name will be set\nby concatenating the words of the display_name with hyphens and adding a\nrandom portion for uniqueness.\n\nExample:\n\n * display_name = `Sentence Translator`\n * name = `tunedModels/sentence-translator-u3b7m`"
          },
          "topK": {
            "format": "int32",
            "description": "Optional. For Top-k sampling.\n\nTop-k sampling considers the set of `top_k` most probable tokens.\nThis value specifies default to be used by the backend while making the\ncall to the model.\n\nThis value specifies default to be the one used by the base model while\ncreating the model.",
            "type": "integer"
          },
          "readerProjectNumbers": {
            "type": "array",
            "description": "Optional. List of project numbers that have read access to the tuned model.",
            "items": {
              "type": "string",
              "format": "int64"
            }
          },
          "displayName": {
            "description": "Optional. The name to display for this model in user interfaces.\nThe display name must be up to 40 characters including spaces.",
            "type": "string"
          },
          "temperature": {
            "description": "Optional. Controls the randomness of the output.\n\nValues can range over `[0.0,1.0]`, inclusive. A value closer to `1.0` will\nproduce responses that are more varied, while a value closer to `0.0` will\ntypically result in less surprising responses from the model.\n\nThis value specifies default to be the one used by the base model while\ncreating the model.",
            "type": "number",
            "format": "float"
          },
          "baseModel": {
            "x-google-immutable": true,
            "description": "Immutable. The name of the `Model` to tune.\nExample: `models/gemini-1.5-flash-001`",
            "type": "string"
          },
          "tunedModelSource": {
            "description": "Optional. TunedModel to use as the starting point for training the new model.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TunedModelSource"
              }
            ]
          },
          "tuningTask": {
            "description": "Required. The tuning task that creates the tuned model.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TuningTask"
              }
            ]
          },
          "state": {
            "description": "Output only. The state of the tuned model.",
            "readOnly": true,
            "type": "string",
            "enum": [
              "STATE_UNSPECIFIED",
              "CREATING",
              "ACTIVE",
              "FAILED"
            ],
            "x-google-enum-descriptions": [
              "The default value. This value is unused.",
              "The model is being created.",
              "The model is ready to be used.",
              "The model failed to be created."
            ]
          },
          "createTime": {
            "format": "date-time",
            "readOnly": true,
            "type": "string",
            "description": "Output only. The timestamp when this model was created."
          },
          "topP": {
            "type": "number",
            "format": "float",
            "description": "Optional. For Nucleus sampling.\n\nNucleus sampling considers the smallest set of tokens whose probability\nsum is at least `top_p`.\n\nThis value specifies default to be the one used by the base model while\ncreating the model."
          }
        },
        "type": "object",
        "description": "A fine-tuned model created using ModelService.CreateTunedModel."
      },
      "CodeExecutionResult": {
        "description": "Result of executing the `ExecutableCode`.\n\nGenerated only when the `CodeExecution` tool is used.",
        "required": [
          "outcome"
        ],
        "properties": {
          "output": {
            "description": "Optional. Contains stdout when code execution is successful, stderr or other\ndescription otherwise.",
            "type": "string"
          },
          "id": {
            "description": "Optional. The identifier of the `ExecutableCode` part this result is for.\nOnly populated if the corresponding `ExecutableCode` has an id.",
            "type": "string"
          },
          "outcome": {
            "type": "string",
            "enum": [
              "OUTCOME_UNSPECIFIED",
              "OUTCOME_OK",
              "OUTCOME_FAILED",
              "OUTCOME_DEADLINE_EXCEEDED"
            ],
            "x-google-enum-descriptions": [
              "Unspecified status. This value should not be used.",
              "Code execution completed successfully. `output` contains the stdout, if\nany.",
              "Code execution failed. `output` contains the stderr and stdout, if any.",
              "Code execution ran for too long, and was cancelled. There may or may not\nbe a partial `output` present."
            ],
            "description": "Required. Outcome of the code execution."
          }
        },
        "type": "object"
      },
      "PlaceAnswerSources": {
        "type": "object",
        "properties": {
          "reviewSnippets": {
            "type": "array",
            "description": "Snippets of reviews that are used to generate answers about the\nfeatures of a given place in Google Maps.",
            "items": {
              "$ref": "#/components/schemas/ReviewSnippet"
            }
          }
        },
        "description": "Collection of sources that provide answers about the features of a given\nplace in Google Maps. Each PlaceAnswerSources message corresponds to a\nspecific place in Google Maps. The Google Maps tool used these sources in\norder to answer questions about features of the place (e.g: \"does Bar Foo\nhave Wifi\" or \"is Foo Bar wheelchair accessible?\"). Currently we only\nsupport review snippets as sources."
      },
      "TunedModelSource": {
        "properties": {
          "baseModel": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. The name of the base `Model` this `TunedModel` was tuned from.\nExample: `models/gemini-1.5-flash-001`"
          },
          "tunedModel": {
            "type": "string",
            "description": "Immutable. The name of the `TunedModel` to use as the starting point for\ntraining the new model.\nExample: `tunedModels/my-tuned-model`",
            "x-google-immutable": true
          }
        },
        "description": "Tuned model as a source for training a new model.",
        "type": "object"
      },
      "InlinedEmbedContentResponse": {
        "description": "The response to a single request in the batch.",
        "type": "object",
        "properties": {
          "metadata": {
            "type": "object",
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "description": "Output only. The metadata associated with the request.",
            "readOnly": true
          },
          "response": {
            "description": "Output only. The response to the request.",
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentResponse"
              }
            ],
            "readOnly": true
          },
          "error": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Status"
              }
            ],
            "description": "Output only. The error encountered while processing the request."
          }
        }
      },
      "PromptFeedback": {
        "description": "A set of the feedback metadata the prompt specified in\n`GenerateContentRequest.content`.",
        "type": "object",
        "properties": {
          "blockReason": {
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "Prompt was blocked due to safety reasons. Inspect `safety_ratings`\nto understand which safety category blocked it.",
              "Prompt was blocked due to unknown reasons.",
              "Prompt was blocked due to the terms which are included from the\nterminology blocklist.",
              "Prompt was blocked due to prohibited content.",
              "Candidates blocked due to unsafe image generation content."
            ],
            "type": "string",
            "enum": [
              "BLOCK_REASON_UNSPECIFIED",
              "SAFETY",
              "OTHER",
              "BLOCKLIST",
              "PROHIBITED_CONTENT",
              "IMAGE_SAFETY"
            ],
            "description": "Optional. If set, the prompt was blocked and no candidates are returned.\nRephrase the prompt."
          },
          "safetyRatings": {
            "type": "array",
            "description": "Ratings for safety of the prompt.\nThere is at most one rating per category.",
            "items": {
              "$ref": "#/components/schemas/SafetyRating"
            }
          }
        }
      },
      "StringList": {
        "properties": {
          "values": {
            "description": "The string values of the metadata to store.",
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "description": "User provided string values assigned to a single metadata key.",
        "type": "object"
      },
      "GenerateContentResponse": {
        "type": "object",
        "properties": {
          "candidates": {
            "description": "Candidate responses from the model.",
            "items": {
              "$ref": "#/components/schemas/Candidate"
            },
            "type": "array"
          },
          "responseId": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. response_id is used to identify each response."
          },
          "promptFeedback": {
            "description": "Returns the prompt's feedback related to the content filters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/PromptFeedback"
              }
            ]
          },
          "usageMetadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UsageMetadata"
              }
            ],
            "description": "Output only. Metadata on the generation requests' token usage.",
            "readOnly": true
          },
          "modelStatus": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/ModelStatus"
              }
            ],
            "description": "Output only. The current model status of this model."
          },
          "modelVersion": {
            "readOnly": true,
            "type": "string",
            "description": "Output only. The model version used to generate the response."
          }
        },
        "description": "Response from the model supporting multiple candidate responses.\n\nSafety ratings and content filtering are reported for both\nprompt in `GenerateContentResponse.prompt_feedback` and for each candidate\nin `finish_reason` and in `safety_ratings`. The API:\n - Returns either all requested candidates or none of them\n - Returns no candidates at all only if there was something wrong with the\n   prompt (check `prompt_feedback`)\n - Reports feedback on each candidate in `finish_reason` and\n   `safety_ratings`."
      },
      "ToolCall": {
        "description": "A predicted server-side `ToolCall` returned from the model. This message\ncontains information about a tool that the model wants to invoke.\nThe client is NOT expected to execute this `ToolCall`. Instead, the\nclient should pass this `ToolCall` back to the API in a subsequent turn\nwithin a `Content` message, along with the corresponding `ToolResponse`.",
        "required": [
          "toolType"
        ],
        "properties": {
          "toolName": {
            "description": "Optional. The name of the tool that was called.",
            "type": "string"
          },
          "toolType": {
            "description": "Required. The type of tool that was called.",
            "allOf": [
              {
                "$ref": "#/components/schemas/V1mainToolType"
              }
            ]
          },
          "args": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "type": "object",
            "description": "Optional. The tool call arguments.\nExample: {\"arg1\" : \"value1\", \"arg2\" : \"value2\" , ...}"
          },
          "id": {
            "description": "Optional. Unique identifier of the tool call.\nThe server returns the tool response with the matching `id`.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "SlidingWindow": {
        "properties": {
          "targetTokens": {
            "format": "int64",
            "type": "string",
            "description": "The target number of tokens to keep. The default value is\ntrigger_tokens/2.\n\nDiscarding parts of the context window causes a temporary latency\nincrease so this value should be calibrated to avoid frequent compression\noperations."
          }
        },
        "description": "The SlidingWindow method operates by discarding content at the beginning of\nthe context window. The resulting context will always begin at the start of\na USER role turn. System instructions and any\n`BidiGenerateContentSetup.prefix_turns` will always remain at the beginning\nof the result.",
        "type": "object"
      },
      "GenerateTextRequest": {
        "type": "object",
        "properties": {
          "stopSequences": {
            "items": {
              "type": "string"
            },
            "description": "The set of character sequences (up to 5) that will stop output generation.\nIf specified, the API will stop at the first appearance of a stop\nsequence. The stop sequence will not be included as part of the response.",
            "type": "array"
          },
          "temperature": {
            "description": "Optional. Controls the randomness of the output.\nNote: The default value varies by model, see the `Model.temperature`\nattribute of the `Model` returned the `getModel` function.\n\nValues can range from [0.0,1.0],\ninclusive. A value closer to 1.0 will produce responses that are more\nvaried and creative, while a value closer to 0.0 will typically result in\nmore straightforward responses from the model.",
            "type": "number",
            "format": "float"
          },
          "topK": {
            "description": "Optional. The maximum number of tokens to consider when sampling.\n\nThe model uses combined Top-k and nucleus sampling.\n\nTop-k sampling considers the set of `top_k` most probable tokens.\nDefaults to 40.\n\nNote: The default value varies by model, see the `Model.top_k`\nattribute of the `Model` returned the `getModel` function.",
            "format": "int32",
            "type": "integer"
          },
          "safetySettings": {
            "description": "Optional. A list of unique `SafetySetting` instances for blocking unsafe content.\n\nthat will be enforced on the `GenerateTextRequest.prompt` and\n`GenerateTextResponse.candidates`. There should not be more than one\nsetting for each `SafetyCategory` type. The API will block any prompts and\nresponses that fail to meet the thresholds set by these settings. This list\noverrides the default settings for each `SafetyCategory` specified in the\nsafety_settings. If there is no `SafetySetting` for a given\n`SafetyCategory` provided in the list, the API will use the default safety\nsetting for that category. Harm categories HARM_CATEGORY_DEROGATORY,\nHARM_CATEGORY_TOXICITY, HARM_CATEGORY_VIOLENCE, HARM_CATEGORY_SEXUAL,\nHARM_CATEGORY_MEDICAL, HARM_CATEGORY_DANGEROUS are supported in text\nservice.",
            "items": {
              "$ref": "#/components/schemas/SafetySetting"
            },
            "type": "array"
          },
          "topP": {
            "description": "Optional. The maximum cumulative probability of tokens to consider when sampling.\n\nThe model uses combined Top-k and nucleus sampling.\n\nTokens are sorted based on their assigned probabilities so that only the\nmost likely tokens are considered. Top-k sampling directly limits the\nmaximum number of tokens to consider, while Nucleus sampling limits number\nof tokens based on the cumulative probability.\n\nNote: The default value varies by model, see the `Model.top_p`\nattribute of the `Model` returned the `getModel` function.",
            "format": "float",
            "type": "number"
          },
          "candidateCount": {
            "format": "int32",
            "type": "integer",
            "description": "Optional. Number of generated responses to return.\n\nThis value must be between [1, 8], inclusive. If unset, this will default\nto 1."
          },
          "prompt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TextPrompt"
              }
            ],
            "description": "Required. The free-form input text given to the model as a prompt.\n\nGiven a prompt, the model will generate a TextCompletion response it\npredicts as the completion of the input text."
          },
          "maxOutputTokens": {
            "description": "Optional. The maximum number of tokens to include in a candidate.\n\nIf unset, this will default to output_token_limit specified in the `Model`\nspecification.",
            "type": "integer",
            "format": "int32"
          }
        },
        "required": [
          "prompt"
        ],
        "description": "Request to generate a text completion response from the model."
      },
      "BaseOperation": {
        "type": "object",
        "properties": {
          "done": {
            "description": "If the value is `false`, it means the operation is still in progress.\nIf `true`, the operation is completed, and either `error` or `response` is\navailable.",
            "type": "boolean"
          },
          "error": {
            "description": "The error result of the operation in case of failure or cancellation.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Status"
              }
            ]
          },
          "name": {
            "description": "The server-assigned name, which is only unique within the same service that\noriginally returns it. If you use the default HTTP mapping, the\n`name` should be a resource name ending with `operations/{unique_id}`.",
            "type": "string"
          }
        },
        "description": "This resource represents a long-running operation that is the result of a\nnetwork API call."
      },
      "TuningExample": {
        "description": "A single example for tuning.",
        "type": "object",
        "required": [
          "output"
        ],
        "properties": {
          "output": {
            "description": "Required. The expected model output.",
            "type": "string"
          },
          "textInput": {
            "description": "Optional. Text model input.",
            "type": "string"
          }
        }
      },
      "VideoMetadata": {
        "type": "object",
        "description": "Deprecated: Use `GenerateContentRequest.processing_options` instead. Metadata\ndescribes the input video content.",
        "properties": {
          "startOffset": {
            "format": "google-duration",
            "type": "string",
            "description": "Optional. The start offset of the video."
          },
          "endOffset": {
            "type": "string",
            "format": "google-duration",
            "description": "Optional. The end offset of the video."
          },
          "fps": {
            "description": "Optional. The frame rate of the video sent to the model. If not specified, the\ndefault value will be 1.0.\nThe fps range is (0.0, 24.0].",
            "type": "number",
            "format": "double"
          }
        },
        "deprecated": true
      },
      "BatchState": {
        "x-google-enum-descriptions": [
          "The batch state is unspecified.",
          "The service is preparing to run the batch.",
          "The batch is in progress.",
          "The batch completed successfully.",
          "The batch failed.",
          "The batch has been cancelled.",
          "The batch has expired."
        ],
        "type": "string",
        "enum": [
          "BATCH_STATE_UNSPECIFIED",
          "BATCH_STATE_PENDING",
          "BATCH_STATE_RUNNING",
          "BATCH_STATE_SUCCEEDED",
          "BATCH_STATE_FAILED",
          "BATCH_STATE_CANCELLED",
          "BATCH_STATE_EXPIRED"
        ]
      },
      "ImportFileMetadata": {
        "type": "object",
        "description": "Metadata for LongRunning ImportFile Operations."
      },
      "ImageSearch": {
        "description": "Image search for grounding and related configurations.",
        "type": "object"
      },
      "GroundingMetadata": {
        "type": "object",
        "description": "Metadata returned to client when grounding is enabled.",
        "properties": {
          "searchEntryPoint": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchEntryPoint"
              }
            ],
            "description": "Optional. Google search entry for the following-up web searches."
          },
          "webSearchQueries": {
            "type": "array",
            "description": "Web search queries for the following-up web search.",
            "items": {
              "type": "string"
            }
          },
          "retrievalMetadata": {
            "description": "Metadata related to retrieval in the grounding flow.",
            "allOf": [
              {
                "$ref": "#/components/schemas/RetrievalMetadata"
              }
            ]
          },
          "imageSearchQueries": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "description": "Image search queries used for grounding."
          },
          "groundingSupports": {
            "description": "List of grounding support.",
            "items": {
              "$ref": "#/components/schemas/GoogleAiGenerativelanguageV1betaGroundingSupport"
            },
            "type": "array"
          },
          "googleMapsWidgetContextToken": {
            "type": "string",
            "description": "Optional. Resource name of the Google Maps widget context token that can be used\nwith the PlacesContextElement widget in order to render contextual data.\nOnly populated in the case that grounding with Google Maps is enabled."
          },
          "groundingChunks": {
            "description": "List of supporting references retrieved from specified grounding source.\nWhen streaming, this only contains the grounding chunks that have not been\nincluded in the grounding metadata of previous responses.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GroundingChunk"
            }
          }
        }
      },
      "Model": {
        "type": "object",
        "required": [
          "name",
          "baseModelId",
          "version"
        ],
        "properties": {
          "supportedGenerationMethods": {
            "description": "The model's supported generation methods.\n\nThe corresponding API method names are defined as Pascal case\nstrings, such as `generateMessage` and `generateContent`.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "inputTokenLimit": {
            "description": "Maximum number of input tokens allowed for this model.",
            "type": "integer",
            "format": "int32"
          },
          "maxTemperature": {
            "description": "The maximum temperature this model can use.",
            "type": "number",
            "format": "float"
          },
          "description": {
            "description": "A short description of the model.",
            "type": "string"
          },
          "temperature": {
            "type": "number",
            "format": "float",
            "description": "Controls the randomness of the output.\n\nValues can range over `[0.0,max_temperature]`, inclusive. A higher value\nwill produce responses that are more varied, while a value closer to `0.0`\nwill typically result in less surprising responses from the model.\nThis value specifies default to be used by the backend while making the\ncall to the model."
          },
          "displayName": {
            "description": "The human-readable name of the model. E.g. \"Gemini 1.5 Flash\".\n\nThe name can be up to 128 characters long and can consist of any UTF-8\ncharacters.",
            "type": "string"
          },
          "version": {
            "type": "string",
            "description": "Required. The version number of the model.\n\nThis represents the major version (`1.0` or `1.5`)"
          },
          "topP": {
            "description": "For [Nucleus\nsampling](https://ai.google.dev/gemini-api/docs/prompting-strategies#top-p).\n\nNucleus sampling considers the smallest set of tokens whose probability\nsum is at least `top_p`.\nThis value specifies default to be used by the backend while making the\ncall to the model.",
            "format": "float",
            "type": "number"
          },
          "thinking": {
            "description": "Whether the model supports thinking.",
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "Required. The resource name of the `Model`. Refer to [Model\nvariants](https://ai.google.dev/gemini-api/docs/models/gemini#model-variations)\nfor all allowed values.\n\nFormat: `models/{model}` with a `{model}` naming convention of:\n\n* \"{base_model_id}-{version}\"\n\nExamples:\n\n* `models/gemini-1.5-flash-001`"
          },
          "topK": {
            "format": "int32",
            "type": "integer",
            "description": "For Top-k sampling.\n\nTop-k sampling considers the set of `top_k` most probable tokens.\nThis value specifies default to be used by the backend while making the\ncall to the model.\nIf empty, indicates the model doesn't use top-k sampling, and `top_k` isn't\nallowed as a generation parameter."
          },
          "outputTokenLimit": {
            "format": "int32",
            "description": "Maximum number of output tokens available for this model.",
            "type": "integer"
          },
          "baseModelId": {
            "type": "string",
            "description": "Required. The name of the base model, pass this to the generation request.\n\nExamples:\n\n* `gemini-1.5-flash`"
          }
        },
        "description": "Information about a Generative Language Model."
      },
      "GenerateAnswerResponse": {
        "description": "Response from the model for a grounded answer.",
        "properties": {
          "inputFeedback": {
            "description": "Output only. Feedback related to the input data used to answer the question, as opposed\nto the model-generated response to the question.\n\nThe input data can be one or more of the following:\n\n- Question specified by the last entry in `GenerateAnswerRequest.content`\n- Conversation history specified by the other entries in\n`GenerateAnswerRequest.content`\n- Grounding sources (`GenerateAnswerRequest.semantic_retriever` or\n`GenerateAnswerRequest.inline_passages`)",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/InputFeedback"
              }
            ]
          },
          "answerableProbability": {
            "format": "float",
            "type": "number",
            "description": "Output only. The model's estimate of the probability that its answer is correct and\ngrounded in the input passages.\n\nA low `answerable_probability` indicates that the answer might not be\ngrounded in the sources.\n\nWhen `answerable_probability` is low, you may want to:\n\n* Display a message to the effect of \"We couldn’t answer that question\" to\nthe user.\n* Fall back to a general-purpose LLM that answers the question from world\nknowledge. The threshold and nature of such fallbacks will depend on\nindividual use cases. `0.5` is a good starting threshold.",
            "readOnly": true
          },
          "answer": {
            "description": "Candidate answer from the model.\n\nNote: The model *always* attempts to provide a grounded answer, even when\nthe answer is unlikely to be answerable from the given passages.\nIn that case, a low-quality or ungrounded answer may be provided, along\nwith a low `answerable_probability`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Candidate"
              }
            ]
          }
        },
        "type": "object"
      },
      "CountMessageTokensResponse": {
        "properties": {
          "tokenCount": {
            "format": "int32",
            "description": "The number of tokens that the `model` tokenizes the `prompt` into.\n\nAlways non-negative.",
            "type": "integer"
          }
        },
        "description": "A response from `CountMessageTokens`.\n\nIt returns the model's `token_count` for the `prompt`.",
        "type": "object"
      },
      "AudioResponseFormat": {
        "properties": {
          "sampleRate": {
            "description": "Optional. Sample rate in Hz.",
            "type": "integer",
            "format": "int32"
          },
          "bitRate": {
            "format": "int32",
            "type": "integer",
            "description": "Optional. Bit rate in bits per second (bps). Only applicable for compressed formats\n(MP3, Opus)."
          },
          "delivery": {
            "description": "Optional. The delivery mode for the audio output.",
            "type": "string",
            "enum": [
              "DELIVERY_UNSPECIFIED",
              "INLINE",
              "URI"
            ],
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "Audio data is returned inline in the response.",
              "Audio data is returned as a URI."
            ]
          },
          "mimeType": {
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "MP3 audio format.",
              "OGG Opus audio format.",
              "Raw PCM (L16) audio format.",
              "WAV audio format.",
              "A-law audio format.",
              "Mu-law audio format."
            ],
            "description": "Optional. The MIME type of the audio output.",
            "type": "string",
            "enum": [
              "MIME_TYPE_UNSPECIFIED",
              "AUDIO_MP3",
              "AUDIO_OGG_OPUS",
              "AUDIO_L16",
              "AUDIO_WAV",
              "AUDIO_ALAW",
              "AUDIO_MULAW"
            ]
          }
        },
        "type": "object",
        "description": "Configuration for audio output format."
      },
      "TextPrompt": {
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "description": "Required. The prompt text.",
            "type": "string"
          }
        },
        "type": "object",
        "description": "Text given to the model as a prompt.\n\nThe Model will use this TextPrompt to Generate a text completion."
      },
      "ObjectId": {
        "properties": {
          "bucketName": {
            "description": "The name of the bucket to which this object belongs.",
            "type": "string"
          },
          "generation": {
            "type": "string",
            "format": "int64",
            "description": "Generation of the object. Generations are monotonically increasing\nacross writes, allowing them to be be compared to determine which\ngeneration is newer. If this is omitted in a request, then you are\nrequesting the live object.\nSee http://go/bigstore-versions"
          },
          "objectName": {
            "type": "string",
            "description": "The name of the object."
          }
        },
        "type": "object",
        "description": "This is a copy of the tech.blob.ObjectId proto, which could not\nbe used directly here due to transitive closure issues with\nJavaScript support; see http://b/8801763."
      },
      "RetrievedContext": {
        "type": "object",
        "description": "Chunk from context retrieved by the file search tool.",
        "properties": {
          "mediaId": {
            "description": "Optional. The media blob resource name for multimodal file search results.\nFormat: fileSearchStores/{file_search_store_id}/media/{blob_id}",
            "type": "string"
          },
          "fileSearchStore": {
            "type": "string",
            "description": "Optional. Name of the `FileSearchStore` containing the document.\nExample: `fileSearchStores/123`"
          },
          "customMetadata": {
            "items": {
              "$ref": "#/components/schemas/GroundingChunkCustomMetadata"
            },
            "description": "Optional. User-provided metadata about the retrieved context.",
            "type": "array"
          },
          "pageNumber": {
            "format": "int32",
            "description": "Optional. Page number of the retrieved context, if applicable.",
            "type": "integer"
          },
          "title": {
            "type": "string",
            "description": "Optional. Title of the document."
          },
          "text": {
            "description": "Optional. Text of the chunk.",
            "type": "string"
          },
          "uri": {
            "description": "Optional. URI reference of the semantic retrieval document.",
            "type": "string"
          }
        }
      },
      "UrlContextMetadata": {
        "description": "Metadata related to url context retrieval tool.",
        "properties": {
          "urlMetadata": {
            "type": "array",
            "description": "List of url context.",
            "items": {
              "$ref": "#/components/schemas/UrlMetadata"
            }
          }
        },
        "type": "object"
      },
      "InlinedResponses": {
        "properties": {
          "inlinedResponses": {
            "items": {
              "$ref": "#/components/schemas/InlinedResponse"
            },
            "type": "array",
            "description": "Output only. The responses to the requests in the batch.",
            "readOnly": true
          }
        },
        "type": "object",
        "description": "The responses to the requests in the batch."
      },
      "ListPermissionsResponse": {
        "properties": {
          "nextPageToken": {
            "type": "string",
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\n\nIf this field is omitted, there are no more pages."
          },
          "permissions": {
            "items": {
              "$ref": "#/components/schemas/Permission"
            },
            "type": "array",
            "description": "Returned permissions."
          }
        },
        "type": "object",
        "description": "Response from `ListPermissions` containing a paginated list of\npermissions."
      },
      "AsyncBatchEmbedContentRequest": {
        "type": "object",
        "description": "Request for an `AsyncBatchEmbedContent` operation.",
        "properties": {
          "batch": {
            "description": "Required. The batch to create.",
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentBatch"
              }
            ]
          }
        },
        "required": [
          "batch"
        ]
      },
      "Hyperparameters": {
        "type": "object",
        "description": "Hyperparameters controlling the tuning process. Read more at\nhttps://ai.google.dev/docs/model_tuning_guidance",
        "properties": {
          "learningRateMultiplier": {
            "format": "float",
            "type": "number",
            "x-google-immutable": true,
            "description": "Optional. Immutable. The learning rate multiplier is used to calculate a final learning_rate\nbased on the default (recommended) value.\nActual learning rate := learning_rate_multiplier * default learning rate\nDefault learning rate is dependent on base model and dataset size.\nIf not set, a default of 1.0 will be used."
          },
          "learningRate": {
            "type": "number",
            "x-google-immutable": true,
            "description": "Optional. Immutable. The learning rate hyperparameter for tuning.\nIf not set, a default of 0.001 or 0.0002 will be calculated based on the\nnumber of training examples.",
            "format": "float"
          },
          "batchSize": {
            "type": "integer",
            "format": "int32",
            "description": "Immutable. The batch size hyperparameter for tuning.\nIf not set, a default of 4 or 16 will be used based on the number of\ntraining examples.",
            "x-google-immutable": true
          },
          "epochCount": {
            "format": "int32",
            "x-google-immutable": true,
            "description": "Immutable. The number of training epochs. An epoch is one pass through the training\ndata.\nIf not set, a default of 5 will be used.",
            "type": "integer"
          }
        }
      },
      "GoogleAiGenerativelanguageV1betaGroundingSupport": {
        "description": "Grounding support.",
        "properties": {
          "confidenceScores": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "float"
            },
            "description": "Optional. Confidence score of the support references. Ranges from 0 to 1. 1 is the\nmost confident. This list must have the same size as the\ngrounding_chunk_indices."
          },
          "renderedParts": {
            "description": "Output only. Indices into the `parts` field of the candidate's content. These indices\nspecify which rendered parts are associated with this support source.",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "type": "array",
            "readOnly": true
          },
          "groundingChunkIndices": {
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional. A list of indices (into 'grounding_chunk' in\n`response.candidate.grounding_metadata`) specifying the citations\nassociated with the claim. For instance [1,3,4] means that\ngrounding_chunk[1], grounding_chunk[3], grounding_chunk[4] are the\nretrieved content attributed to the claim. If the response is streaming,\nthe grounding_chunk_indices refer to the indices across all responses.\nIt is the client's responsibility to accumulate the grounding chunks from\nall responses (while maintaining the same order).",
            "type": "array"
          },
          "segment": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GoogleAiGenerativelanguageV1betaSegment"
              }
            ],
            "description": "Segment of the content this support belongs to."
          }
        },
        "type": "object"
      },
      "ListDocumentsResponse": {
        "description": "Response from `ListDocuments` containing a paginated list of `Document`s.\nThe `Document`s are sorted by ascending `document.create_time`.",
        "properties": {
          "documents": {
            "description": "The returned `Document`s.",
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array"
          },
          "nextPageToken": {
            "type": "string",
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no more pages."
          }
        },
        "type": "object"
      },
      "GoogleAiGenerativelanguageV1betaSegment": {
        "type": "object",
        "properties": {
          "partIndex": {
            "format": "int32",
            "type": "integer",
            "description": "The index of a Part object within its parent Content object."
          },
          "text": {
            "type": "string",
            "description": "The text corresponding to the segment from the response."
          },
          "endIndex": {
            "format": "int32",
            "type": "integer",
            "description": "End index in the given Part, measured in bytes. Offset from the start of\nthe Part, exclusive, starting at zero."
          },
          "startIndex": {
            "format": "int32",
            "description": "Start index in the given Part, measured in bytes. Offset from the start of\nthe Part, inclusive, starting at zero.",
            "type": "integer"
          }
        },
        "description": "Segment of the content."
      },
      "GoogleSearch": {
        "description": "GoogleSearch tool type.\nTool to support Google Search in Model. Powered by Google.",
        "properties": {
          "searchTypes": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchTypes"
              }
            ],
            "description": "Optional. The set of search types to enable. If not set, web search is\nenabled by default."
          },
          "timeRangeFilter": {
            "description": "Optional. Filter search results to a specific time range.\nIf customers set a start time, they must set an end time (and vice\nversa).",
            "allOf": [
              {
                "$ref": "#/components/schemas/Interval"
              }
            ]
          }
        },
        "type": "object"
      },
      "LanguageHints": {
        "required": [
          "languageCodes"
        ],
        "description": "Provides hints to the model about possible languages present in the audio.",
        "deprecated": true,
        "type": "object",
        "properties": {
          "languageCodes": {
            "type": "array",
            "deprecated": true,
            "items": {
              "type": "string"
            },
            "description": "Required. BCP-47 language codes."
          }
        }
      },
      "BatchGenerateContentResponse": {
        "properties": {
          "output": {
            "description": "Output only. The output of the batch request.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerateContentBatchOutput"
              }
            ]
          }
        },
        "description": "Response for a `BatchGenerateContent` operation.",
        "type": "object"
      },
      "TranslationConfig": {
        "type": "object",
        "description": "Config for translation features.",
        "properties": {
          "echoTargetLanguage": {
            "description": "Optional. If true, the model will generate audio when the target language is spoken,\nessentially it will parrot the input. If false, we will not produce audio\nfor the target language.",
            "type": "boolean"
          },
          "targetLanguageCode": {
            "description": "Required. The target language for translation. Supported values are BCP-47 language\ncodes (e.g. \"en\", \"es\", \"fr\").",
            "type": "string"
          }
        },
        "required": [
          "targetLanguageCode"
        ]
      },
      "Tool": {
        "properties": {
          "fileSearch": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FileSearch"
              }
            ],
            "description": "Optional. FileSearch tool type.\nTool to retrieve knowledge from Semantic Retrieval corpora."
          },
          "googleSearch": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GoogleSearch"
              }
            ],
            "description": "Optional. GoogleSearch tool type.\nTool to support Google Search in Model. Powered by Google."
          },
          "googleSearchRetrieval": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GoogleSearchRetrieval"
              }
            ],
            "description": "Optional. Retrieval tool that is powered by Google search."
          },
          "functionDeclarations": {
            "type": "array",
            "description": "Optional. A list of `FunctionDeclarations` available to the model that can be used\nfor function calling.\n\nThe model or system does not execute the function. Instead the defined\nfunction may be returned as a FunctionCall\nwith arguments to the client side for execution. The model may decide to\ncall a subset of these functions by populating\nFunctionCall in the response. The next\nconversation turn may contain a\nFunctionResponse\nwith the Content.role \"function\" generation context for the next model\nturn.",
            "items": {
              "$ref": "#/components/schemas/FunctionDeclaration"
            }
          },
          "mcpServers": {
            "items": {
              "$ref": "#/components/schemas/McpServer"
            },
            "description": "Optional. MCP Servers to connect to.",
            "type": "array"
          },
          "codeExecution": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CodeExecution"
              }
            ],
            "description": "Optional. Enables the model to execute code as part of generation."
          },
          "googleMaps": {
            "description": "Optional. Tool that allows grounding the model's response with geospatial context\nrelated to the user's query.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GoogleMaps"
              }
            ]
          },
          "urlContext": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UrlContext"
              }
            ],
            "description": "Optional. Tool to support URL context retrieval."
          },
          "computerUse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ComputerUse"
              }
            ],
            "description": "Optional. Tool to support the model interacting directly with the computer.\nIf enabled, it automatically populates computer-use specific Function\nDeclarations."
          }
        },
        "type": "object",
        "description": "Tool details that the model may use to generate response.\n\nA `Tool` is a piece of code that enables the system to interact with\nexternal systems to perform an action, or set of actions, outside of\nknowledge and scope of the model.\n\nNext ID: 17"
      },
      "ListFileSearchStoresResponse": {
        "properties": {
          "nextPageToken": {
            "type": "string",
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no more pages."
          },
          "fileSearchStores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileSearchStore"
            },
            "description": "The returned rag_stores."
          }
        },
        "description": "Response from `ListFileSearchStores` containing a paginated list of\n`FileSearchStores`. The results are sorted by ascending\n`file_search_store.create_time`.",
        "type": "object"
      },
      "Type": {
        "x-google-enum-descriptions": [
          "Not specified, should not be used.",
          "String type.",
          "Number type.",
          "Integer type.",
          "Boolean type.",
          "Array type.",
          "Object type.",
          "Null type."
        ],
        "type": "string",
        "enum": [
          "TYPE_UNSPECIFIED",
          "STRING",
          "NUMBER",
          "INTEGER",
          "BOOLEAN",
          "ARRAY",
          "OBJECT",
          "NULL"
        ]
      },
      "ThinkingConfig": {
        "type": "object",
        "properties": {
          "thinkingBudget": {
            "type": "integer",
            "description": "The number of thoughts tokens that the model should generate.",
            "format": "int32"
          },
          "thinkingLevel": {
            "type": "string",
            "enum": [
              "THINKING_LEVEL_UNSPECIFIED",
              "MINIMAL",
              "LOW",
              "MEDIUM",
              "HIGH"
            ],
            "description": "Optional. Controls the maximum depth of the model's internal reasoning process before\nit produces a response. The default value is model-dependent. Refer to the\n[Thinking levels\nguide](https://ai.google.dev/gemini-api/docs/thinking#thinking-levels) for\nmore details. Recommended for Gemini 3 or later models. Use with earlier\nmodels results in an error.",
            "x-google-enum-descriptions": [
              "Default value.",
              "Little to no thinking.",
              "Low thinking level.",
              "Medium thinking level.",
              "High thinking level."
            ]
          },
          "includeThoughts": {
            "type": "boolean",
            "description": "Indicates whether to include thoughts in the response.\nIf true, thoughts are returned only when available."
          }
        },
        "description": "Config for thinking features."
      },
      "MessagePrompt": {
        "type": "object",
        "required": [
          "messages"
        ],
        "properties": {
          "examples": {
            "type": "array",
            "description": "Optional. Examples of what the model should generate.\n\nThis includes both user input and the response that the model should\nemulate.\n\nThese `examples` are treated identically to conversation messages except\nthat they take precedence over the history in `messages`:\nIf the total input size exceeds the model's `input_token_limit` the input\nwill be truncated. Items will be dropped from `messages` before `examples`.",
            "items": {
              "$ref": "#/components/schemas/Example"
            }
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "description": "Required. A snapshot of the recent conversation history sorted chronologically.\n\nTurns alternate between two authors.\n\nIf the total input size exceeds the model's `input_token_limit` the input\nwill be truncated: The oldest items will be dropped from `messages`."
          },
          "context": {
            "type": "string",
            "description": "Optional. Text that should be provided to the model first to ground the response.\n\nIf not empty, this `context` will be given to the model first before the\n`examples` and `messages`. When using a `context` be sure to provide it\nwith every request to maintain continuity.\n\nThis field can be a description of your prompt to the model to help provide\ncontext and guide the responses. Examples: \"Translate the phrase from\nEnglish to French.\" or \"Given a statement, classify the sentiment as happy,\nsad or neutral.\"\n\nAnything included in this field will take precedence over message history\nif the total input size exceeds the model's `input_token_limit` and the\ninput request is truncated."
          }
        },
        "description": "All of the structured input text passed to the model as a prompt.\n\nA `MessagePrompt` contains a structured set of fields that provide context\nfor the conversation, examples of user input/model output message pairs that\nprime the model to respond in different ways, and the conversation history\nor list of messages representing the alternating turns of the conversation\nbetween the user and the model."
      },
      "ListFilesResponse": {
        "properties": {
          "nextPageToken": {
            "description": "A token that can be sent as a `page_token` into a subsequent `ListFiles`\ncall.",
            "type": "string"
          },
          "files": {
            "description": "The list of `File`s.",
            "items": {
              "$ref": "#/components/schemas/File"
            },
            "type": "array"
          }
        },
        "type": "object",
        "description": "Response for `ListFiles`."
      },
      "CitationMetadata": {
        "properties": {
          "citationSources": {
            "description": "Citations to sources for a specific response.",
            "items": {
              "$ref": "#/components/schemas/CitationSource"
            },
            "type": "array"
          }
        },
        "type": "object",
        "description": "A collection of source attributions for a piece of content."
      },
      "ListTunedModelsResponse": {
        "type": "object",
        "properties": {
          "tunedModels": {
            "description": "The returned Models.",
            "items": {
              "$ref": "#/components/schemas/TunedModel"
            },
            "type": "array"
          },
          "nextPageToken": {
            "type": "string",
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\n\nIf this field is omitted, there are no more pages."
          }
        },
        "description": "Response from `ListTunedModels` containing a paginated list of Models."
      },
      "ModalityTokenCount": {
        "properties": {
          "modality": {
            "description": "The modality associated with this token count.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerativeLanguageModality"
              }
            ]
          },
          "tokenCount": {
            "format": "int32",
            "description": "Number of tokens.",
            "type": "integer"
          }
        },
        "type": "object",
        "description": "Represents token counting info for a single modality."
      },
      "FunctionDeclaration": {
        "description": "Structured representation of a function declaration as defined by the\n[OpenAPI 3.03 specification](https://spec.openapis.org/oas/v3.0.3). Included\nin this declaration are the function name and parameters. This\nFunctionDeclaration is a representation of a block of code that can be used\nas a `Tool` by the model and executed by the client.",
        "type": "object",
        "properties": {
          "parametersJsonSchema": {
            "description": "Optional. Describes the parameters to the function in JSON Schema format. The schema\nmust describe an object where the properties are the parameters to the\nfunction. For example:\n\n```\n{\n  \"type\": \"object\",\n  \"properties\": {\n    \"name\": { \"type\": \"string\" },\n    \"age\": { \"type\": \"integer\" }\n  },\n  \"additionalProperties\": false,\n  \"required\": [\"name\", \"age\"],\n  \"propertyOrdering\": [\"name\", \"age\"]\n}\n```\n\nThis field is mutually exclusive with `parameters`."
          },
          "parameters": {
            "description": "Optional. Describes the parameters to this function. Reflects the Open API 3.03\nParameter Object string Key: the name of the parameter. Parameter names are\ncase sensitive. Schema Value: the Schema defining the type used for the\nparameter.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Schema"
              }
            ]
          },
          "response": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Schema"
              }
            ],
            "description": "Optional. Describes the output from this function in JSON Schema format. Reflects the\nOpen API 3.03 Response Object. The Schema defines the type used for the\nresponse value of the function."
          },
          "behavior": {
            "x-google-enum-descriptions": [
              "This value is unused.",
              "If set, the system will wait to receive the function response before\ncontinuing the conversation.",
              "If set, the system will not wait to receive the function response.\nInstead, it will attempt to handle function responses as they become\navailable while maintaining the conversation between the user and the\nmodel."
            ],
            "type": "string",
            "enum": [
              "UNSPECIFIED",
              "BLOCKING",
              "NON_BLOCKING"
            ],
            "description": "Optional. Specifies the function Behavior.\nCurrently only supported by the BidiGenerateContent method."
          },
          "name": {
            "type": "string",
            "description": "Required. The name of the function.\nMust be a-z, A-Z, 0-9, or contain underscores, colons, dots, and dashes,\nwith a maximum length of 128."
          },
          "responseJsonSchema": {
            "description": "Optional. Describes the output from this function in JSON Schema format. The value\nspecified by the schema is the response value of the function.\n\nThis field is mutually exclusive with `response`."
          },
          "description": {
            "type": "string",
            "description": "Required. A brief description of the function."
          }
        },
        "required": [
          "name",
          "description"
        ]
      },
      "TextResponseFormat": {
        "description": "Configuration for text output format.",
        "type": "object",
        "properties": {
          "mimeType": {
            "type": "string",
            "enum": [
              "MIME_TYPE_UNSPECIFIED",
              "APPLICATION_JSON",
              "TEXT_PLAIN"
            ],
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "JSON output format.",
              "Plain text output format."
            ],
            "description": "Optional. The MIME type of the text output."
          },
          "schema": {
            "description": "Optional. The JSON schema that the output should conform to. Only applicable when\nmime_type is APPLICATION_JSON."
          }
        }
      },
      "AudioTranscription": {
        "type": "object",
        "properties": {
          "words": {
            "items": {
              "$ref": "#/components/schemas/WordInfo"
            },
            "type": "array",
            "description": "Optional. Detailed word-level transcriptions and timing details.\nPresent when word_timestamp is set."
          },
          "text": {
            "type": "string",
            "description": "Required. The transcription text of this audio segment."
          },
          "speakerLabel": {
            "type": "string",
            "description": "Optional. A label identifying the speaker of this audio segment (e.g. \"spk_1\",\n\"spk_2\"). Present when diarization is set."
          }
        },
        "description": "The transcription of an audio part.\nFor multi-speaker audio, each speaker segment is a separate Part with its\nown AudioTranscription carrying the speaker_label.",
        "required": [
          "text"
        ]
      },
      "CountTokensRequest": {
        "description": "Counts the number of tokens in the `prompt` sent to a model.\n\nModels may tokenize text differently, so each model may return a different\n`token_count`.",
        "type": "object",
        "properties": {
          "contents": {
            "items": {
              "$ref": "#/components/schemas/Content"
            },
            "type": "array",
            "description": "Optional. The input given to the model as a prompt. This field is ignored when\n`generate_content_request` is set."
          },
          "generateContentRequest": {
            "description": "Optional. The overall input given to the `Model`. This includes the prompt as well as\nother model steering information like [system\ninstructions](https://ai.google.dev/gemini-api/docs/system-instructions),\nand/or function declarations for [function\ncalling](https://ai.google.dev/gemini-api/docs/function-calling).\n`Model`s/`Content`s and `generate_content_request`s are mutually\nexclusive. You can either send `Model` + `Content`s or a\n`generate_content_request`, but never both.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            ]
          }
        }
      },
      "SearchEntryPoint": {
        "properties": {
          "sdkBlob": {
            "type": "string",
            "description": "Optional. Base64 encoded JSON representing array of  tuple.",
            "format": "byte"
          },
          "renderedContent": {
            "description": "Optional. Web content snippet that can be embedded in a web page or an app webview.",
            "type": "string"
          }
        },
        "type": "object",
        "description": "Google search entry point."
      },
      "SemanticRetrieverChunk": {
        "properties": {
          "source": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. Name of the source matching the request's\n`SemanticRetrieverConfig.source`. Example: `corpora/123` or\n`corpora/123/documents/abc`"
          },
          "chunk": {
            "readOnly": true,
            "type": "string",
            "description": "Output only. Name of the `Chunk` containing the attributed text.\nExample: `corpora/123/documents/abc/chunks/xyz`"
          }
        },
        "description": "Identifier for a `Chunk` retrieved via Semantic Retriever specified in the\n`GenerateAnswerRequest` using `SemanticRetrieverConfig`.",
        "type": "object"
      },
      "Image": {
        "description": "Chunk from image search.",
        "properties": {
          "domain": {
            "type": "string",
            "description": "The root domain of the web page that the image is from, e.g.\n\"example.com\"."
          },
          "sourceUri": {
            "description": "The web page URI for attribution.",
            "type": "string"
          },
          "title": {
            "description": "The title of the web page that the image is from.",
            "type": "string"
          },
          "imageUri": {
            "type": "string",
            "description": "The image asset URL."
          }
        },
        "type": "object"
      },
      "Environment": {
        "required": [
          "id"
        ],
        "description": "An execution environment for an agent.",
        "properties": {
          "created": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. The time at which the environment was created in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ)."
          },
          "sizeBytes": {
            "description": "Output only. The total size of the environment files in bytes, output only.",
            "format": "int64",
            "type": "string",
            "readOnly": true
          },
          "lastAccessed": {
            "description": "Output only. The time at which the environment was last accessed in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ).",
            "type": "string",
            "readOnly": true
          },
          "id": {
            "type": "string",
            "readOnly": true,
            "description": "Required. Output only. The ID of the environment."
          },
          "networkAllowlist": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EnvironmentNetworkEgressAllowlist"
              }
            ],
            "description": "Allow only specific domains."
          },
          "sources": {
            "items": {
              "$ref": "#/components/schemas/Source"
            },
            "description": "Sources to be mounted into the environment.",
            "type": "array"
          },
          "status": {
            "x-google-enum-descriptions": [
              "",
              "",
              ""
            ],
            "type": "string",
            "enum": [
              "STATUS_UNSPECIFIED",
              "ACTIVE",
              "EXPIRED"
            ],
            "readOnly": true,
            "description": "Output only. The status of the environment container."
          },
          "networkMode": {
            "x-google-enum-descriptions": [
              "Default value. Unused.",
              "All network egress is blocked."
            ],
            "type": "string",
            "enum": [
              "NETWORK_MODE_UNSPECIFIED",
              "DISABLED"
            ],
            "description": "Network egress mode."
          },
          "fileCount": {
            "type": "string",
            "format": "int64",
            "readOnly": true,
            "description": "Output only. The number of files in the environment, output only."
          },
          "updated": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. The time at which the environment was last updated in ISO 8601 format\n(YYYY-MM-DDThh:mm:ssZ)."
          }
        },
        "type": "object"
      },
      "BatchEmbedContentsRequest": {
        "description": "Batch request to get embeddings from the model for a list of prompts.",
        "type": "object",
        "required": [
          "requests"
        ],
        "properties": {
          "requests": {
            "type": "array",
            "description": "Required. Embed requests for the batch. The model in each of these requests must\nmatch the model specified `BatchEmbedContentsRequest.model`.",
            "items": {
              "$ref": "#/components/schemas/EmbedContentRequest"
            }
          }
        }
      },
      "AttributionSourceId": {
        "properties": {
          "semanticRetrieverChunk": {
            "allOf": [
              {
                "$ref": "#/components/schemas/SemanticRetrieverChunk"
              }
            ],
            "description": "Identifier for a `Chunk` fetched via Semantic Retriever."
          },
          "groundingPassage": {
            "description": "Identifier for an inline passage.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GroundingPassageId"
              }
            ]
          }
        },
        "type": "object",
        "description": "Identifier for the source contributing to this attribution."
      },
      "Candidate": {
        "description": "A response candidate generated from the model.",
        "type": "object",
        "properties": {
          "groundingAttributions": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/GroundingAttribution"
            },
            "description": "Output only. Attribution information for sources that contributed to a grounded answer.\n\nThis field is populated for `GenerateAnswer` calls."
          },
          "continuationToken": {
            "format": "byte",
            "description": "An optional opaque continuation token returned when `finish_reason` is\n`CONTINUATION`.\nClients can pass this token in a subsequent `GenerateContentRequest` to\ncontinue generation.",
            "type": "string"
          },
          "urlContextMetadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UrlContextMetadata"
              }
            ],
            "readOnly": true,
            "description": "Output only. Metadata related to url context retrieval tool."
          },
          "content": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ],
            "description": "Output only. Generated content returned from the model."
          },
          "avgLogprobs": {
            "description": "Output only. Average log probability score of the candidate.",
            "format": "double",
            "type": "number",
            "readOnly": true
          },
          "groundingMetadata": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/GroundingMetadata"
              }
            ],
            "description": "Output only. Grounding metadata for the candidate.\n\nThis field is populated for `GenerateContent` calls."
          },
          "finishReason": {
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "Natural stop point of the model or provided stop sequence.",
              "The maximum number of tokens as specified in the request was reached.",
              "The response candidate content was flagged for safety reasons.",
              "The response candidate content was flagged for recitation reasons.",
              "The response candidate content was flagged for using an unsupported\nlanguage.",
              "Unknown reason.",
              "Token generation stopped because the content contains forbidden terms.",
              "Token generation stopped for potentially containing prohibited content.",
              "Token generation stopped because the content potentially contains\nSensitive Personally Identifiable Information (SPII).",
              "The function call generated by the model is invalid.",
              "Token generation stopped because generated images contain safety\nviolations.",
              "Image generation stopped because generated images has other prohibited\ncontent.",
              "Image generation stopped because of other miscellaneous issue.",
              "The model was expected to generate an image, but none was generated.",
              "Image generation stopped due to recitation.",
              "Model generated a tool call but no tools were enabled in the request.",
              "Model called too many tools consecutively, thus the system exited\nexecution.",
              "Request has at least one thought signature missing.",
              "Finished due to malformed response.",
              "Request was filtered by an escalation rule.",
              "Indicates that token generation stopped because the user account is\nlimited or disabled due to Prohibited Use Policy (PUP) violations.",
              "Token generation was stopped because the response reached the per-request\ntoken limit, but generation is not yet complete. The model response can\nbe continued via a subsequent request using the returned\n`continuation_token`."
            ],
            "type": "string",
            "enum": [
              "FINISH_REASON_UNSPECIFIED",
              "STOP",
              "MAX_TOKENS",
              "SAFETY",
              "RECITATION",
              "LANGUAGE",
              "OTHER",
              "BLOCKLIST",
              "PROHIBITED_CONTENT",
              "SPII",
              "MALFORMED_FUNCTION_CALL",
              "IMAGE_SAFETY",
              "IMAGE_PROHIBITED_CONTENT",
              "IMAGE_OTHER",
              "NO_IMAGE",
              "IMAGE_RECITATION",
              "UNEXPECTED_TOOL_CALL",
              "TOO_MANY_TOOL_CALLS",
              "MISSING_THOUGHT_SIGNATURE",
              "MALFORMED_RESPONSE",
              "ESCALATION",
              "PUP_LIMITED_DISABLED",
              "CONTINUATION"
            ],
            "description": "Optional. Output only. The reason why the model stopped generating tokens.\n\nIf empty, the model has not stopped generating tokens.",
            "readOnly": true
          },
          "logprobsResult": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/LogprobsResult"
              }
            ],
            "description": "Output only. Log-likelihood scores for the response tokens and top tokens"
          },
          "citationMetadata": {
            "description": "Output only. Citation information for model-generated candidate.\n\nThis field may be populated with recitation information for any text\nincluded in the `content`. These are passages that are \"recited\" from\ncopyrighted material in the foundational LLM's training data.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CitationMetadata"
              }
            ],
            "readOnly": true
          },
          "tokenCount": {
            "type": "integer",
            "description": "Output only. Token count for this candidate.",
            "readOnly": true,
            "format": "int32"
          },
          "safetyRatings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SafetyRating"
            },
            "description": "List of ratings for the safety of a response candidate.\n\nThere is at most one rating per category."
          },
          "index": {
            "format": "int32",
            "type": "integer",
            "description": "Output only. Index of the candidate in the list of response candidates.",
            "readOnly": true
          },
          "finishMessage": {
            "description": "Optional. Output only. Details the reason why the model stopped generating tokens.\nThis is populated only when `finish_reason` is set.",
            "type": "string",
            "readOnly": true
          }
        }
      },
      "McpServer": {
        "description": "A MCPServer is a server that can be called by the model to perform actions.\nIt is a server that implements the MCP protocol.\nNext ID: 7",
        "properties": {
          "name": {
            "description": "The name of the MCPServer.",
            "type": "string"
          },
          "streamableHttpTransport": {
            "allOf": [
              {
                "$ref": "#/components/schemas/StreamableHttpTransport"
              }
            ],
            "description": "A transport that can stream HTTP requests and responses."
          }
        },
        "type": "object"
      },
      "Corpus": {
        "type": "object",
        "description": "A `Corpus` is a collection of `Document`s.\nA project can create up to 10 corpora.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Output only. Immutable. Identifier. The `Corpus` resource name. The ID (name excluding the \"corpora/\" prefix)\ncan contain up to 40 characters that are lowercase alphanumeric or dashes\n(-). The ID cannot start or end with a dash. If the name is empty on\ncreate, a unique name will be derived from `display_name` along with a 12\ncharacter random suffix.\nExample: `corpora/my-awesome-corpora-123a456b789c`",
            "readOnly": true,
            "x-google-immutable": true,
            "x-google-identifier": true
          },
          "displayName": {
            "type": "string",
            "description": "Optional. The human-readable display name for the `Corpus`. The display name must be\nno more than 512 characters in length, including spaces.\nExample: \"Docs on Semantic Retriever\""
          },
          "createTime": {
            "description": "Output only. The Timestamp of when the `Corpus` was created.",
            "type": "string",
            "readOnly": true,
            "format": "date-time"
          },
          "updateTime": {
            "readOnly": true,
            "type": "string",
            "description": "Output only. The Timestamp of when the `Corpus` was last updated.",
            "format": "date-time"
          }
        }
      },
      "GenerateMessageResponse": {
        "description": "The response from the model.\n\nThis includes candidate messages and\nconversation history in the form of chronologically-ordered messages.",
        "type": "object",
        "properties": {
          "filters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ContentFilter"
            },
            "description": "A set of content filtering metadata for the prompt and response\ntext.\n\nThis indicates which `SafetyCategory`(s) blocked a\ncandidate from this response, the lowest `HarmProbability`\nthat triggered a block, and the HarmThreshold setting for that category."
          },
          "candidates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "description": "Candidate response messages from the model."
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "description": "The conversation history used by the model.",
            "type": "array"
          }
        }
      },
      "StreamableHttpTransport": {
        "type": "object",
        "description": "A transport that can stream HTTP requests and responses.\nNext ID: 6",
        "properties": {
          "url": {
            "description": "The full URL for the MCPServer endpoint.\nExample: \"https://api.example.com/mcp\"",
            "type": "string"
          },
          "headers": {
            "type": "object",
            "description": "Optional: Fields for authentication headers, timeouts, etc., if needed.",
            "additionalProperties": {
              "type": "string"
            }
          },
          "timeout": {
            "description": "HTTP timeout for regular operations.",
            "type": "string",
            "format": "google-duration"
          },
          "terminateOnClose": {
            "type": "boolean",
            "description": "Whether to close the client session when the transport closes."
          },
          "sseReadTimeout": {
            "type": "string",
            "format": "google-duration",
            "description": "Timeout for SSE read operations."
          }
        }
      },
      "V1mainToolType": {
        "x-google-enum-descriptions": [
          "Unspecified tool type.",
          "Google search tool, maps to Tool.google_search.search_types.web_search.",
          "Image search tool, maps to Tool.google_search.search_types.image_search.",
          "URL context tool, maps to Tool.url_context.",
          "Google maps tool, maps to Tool.google_maps.",
          "File search tool, maps to Tool.file_search."
        ],
        "type": "string",
        "enum": [
          "TOOL_TYPE_UNSPECIFIED",
          "GOOGLE_SEARCH_WEB",
          "GOOGLE_SEARCH_IMAGE",
          "URL_CONTEXT",
          "GOOGLE_MAPS",
          "FILE_SEARCH"
        ]
      },
      "SearchTypes": {
        "type": "object",
        "description": "Different types of search that can be enabled on the GoogleSearch tool.",
        "properties": {
          "webSearch": {
            "description": "Optional. Enables web search. Only text results are returned.",
            "allOf": [
              {
                "$ref": "#/components/schemas/WebSearch"
              }
            ]
          },
          "imageSearch": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ImageSearch"
              }
            ],
            "description": "Optional. Enables image search. Image bytes are returned."
          }
        }
      },
      "BatchEmbedContentsResponse": {
        "properties": {
          "usageMetadata": {
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbeddingUsageMetadata"
              }
            ],
            "readOnly": true,
            "description": "Output only. The usage metadata for the request."
          },
          "embeddings": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/ContentEmbedding"
            },
            "description": "Output only. The embeddings for each request, in the same order as provided in the batch\nrequest."
          }
        },
        "type": "object",
        "description": "The response to a `BatchEmbedContentsRequest`."
      },
      "CreateTunedModelMetadata": {
        "type": "object",
        "description": "Metadata about the state and progress of creating a tuned model returned from\nthe long-running operation",
        "properties": {
          "snapshots": {
            "items": {
              "$ref": "#/components/schemas/TuningSnapshot"
            },
            "description": "Metrics collected during tuning.",
            "type": "array"
          },
          "tunedModel": {
            "description": "Name of the tuned model associated with the tuning operation.",
            "type": "string"
          },
          "completedPercent": {
            "description": "The completed percentage for the tuning operation.",
            "format": "float",
            "type": "number"
          },
          "totalSteps": {
            "description": "The total number of tuning steps.",
            "type": "integer",
            "format": "int32"
          },
          "completedSteps": {
            "type": "integer",
            "format": "int32",
            "description": "The number of steps completed."
          }
        }
      },
      "FunctionResponsePart": {
        "properties": {
          "inlineData": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FunctionResponseBlob"
              }
            ],
            "description": "Inline media bytes."
          }
        },
        "description": "A datatype containing media that is part of a `FunctionResponse` message.\n\nA `FunctionResponsePart` consists of data which has an associated datatype. A\n`FunctionResponsePart` can only contain one of the accepted types in\n`FunctionResponsePart.data`.\n\nA `FunctionResponsePart` must have a fixed IANA MIME type identifying the\ntype and subtype of the media if the `inline_data` field is filled with raw\nbytes.",
        "type": "object"
      },
      "ReviewSnippet": {
        "type": "object",
        "properties": {
          "googleMapsUri": {
            "type": "string",
            "description": "A link that corresponds to the user review on Google Maps."
          },
          "title": {
            "description": "Title of the review.",
            "type": "string"
          },
          "reviewId": {
            "description": "The ID of the review snippet.",
            "type": "string"
          }
        },
        "description": "Encapsulates a snippet of a user review that answers a question about\nthe features of a specific place in Google Maps."
      },
      "FunctionCallingConfig": {
        "description": "Configuration for specifying function calling behavior.",
        "type": "object",
        "properties": {
          "allowedFunctionNames": {
            "description": "Optional. A set of function names that, when provided, limits the functions the model\nwill call.\n\nThis should only be set when the Mode is ANY or VALIDATED. Function names\nshould match [FunctionDeclaration.name]. When set, model will\npredict a function call from only allowed function names.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "mode": {
            "type": "string",
            "enum": [
              "MODE_UNSPECIFIED",
              "AUTO",
              "ANY",
              "NONE",
              "VALIDATED"
            ],
            "x-google-enum-descriptions": [
              "Unspecified function calling mode. This value should not be used.",
              "Default model behavior, model decides to predict either a function call\nor a natural language response.",
              "Model is constrained to always predicting a function call only.\nIf \"allowed_function_names\" are set, the predicted function call will be\nlimited to any one of \"allowed_function_names\", else the predicted\nfunction call will be any one of the provided \"function_declarations\".",
              "Model will not predict any function call. Model behavior is same as when\nnot passing any function declarations.",
              "Model decides to predict either a function call\nor a natural language response, but will validate function calls with\nconstrained decoding.\nIf \"allowed_function_names\" are set, the predicted function call will be\nlimited to any one of \"allowed_function_names\", else the predicted\nfunction call will be any one of the provided \"function_declarations\"."
            ],
            "description": "Optional. Specifies the mode in which function calling should execute. If\nunspecified, the default value will be set to AUTO."
          }
        }
      },
      "SpeechConfig": {
        "description": "Config for speech generation and transcription.",
        "type": "object",
        "properties": {
          "multiSpeakerVoiceConfig": {
            "description": "Optional. The configuration for the multi-speaker setup.\nIt is mutually exclusive with the voice_config field.",
            "allOf": [
              {
                "$ref": "#/components/schemas/MultiSpeakerVoiceConfig"
              }
            ]
          },
          "voiceConfig": {
            "description": "The configuration in case of single-voice output.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VoiceConfig"
              }
            ]
          },
          "languageCode": {
            "description": "Optional. The IETF [BCP-47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) language\ncode that the user configured the app to use. Used for speech recognition\nand synthesis.\n\nValid values are: `de-DE`, `en-AU`, `en-GB`, `en-IN`, `en-US`, `es-US`,\n`fr-FR`, `hi-IN`, `pt-BR`, `ar-XA`, `es-ES`, `fr-CA`, `id-ID`, `it-IT`,\n`ja-JP`, `tr-TR`, `vi-VN`, `bn-IN`, `gu-IN`, `kn-IN`, `ml-IN`, `mr-IN`,\n`ta-IN`, `te-IN`, `nl-NL`, `ko-KR`, `cmn-CN`, `pl-PL`, `ru-RU`, and\n`th-TH`.",
            "type": "string"
          }
        }
      },
      "TransferOwnershipResponse": {
        "description": "Response from `TransferOwnership`.",
        "type": "object"
      },
      "EmbedContentResponse": {
        "properties": {
          "embedding": {
            "description": "Output only. The embedding generated from the input content.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ContentEmbedding"
              }
            ],
            "readOnly": true
          },
          "usageMetadata": {
            "description": "Output only. The usage metadata for the request.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbeddingUsageMetadata"
              }
            ]
          }
        },
        "description": "The response to an `EmbedContentRequest`.",
        "type": "object"
      },
      "ExecutableCode": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Optional. Unique identifier of the `ExecutableCode` part.\nThe server returns the `CodeExecutionResult` with the matching `id`."
          },
          "language": {
            "description": "Required. Programming language of the `code`.",
            "x-google-enum-descriptions": [
              "Unspecified language. This value should not be used.",
              "Python \u003e= 3.10, with numpy and simpy available.\nPython is the default language."
            ],
            "type": "string",
            "enum": [
              "LANGUAGE_UNSPECIFIED",
              "PYTHON"
            ]
          },
          "code": {
            "type": "string",
            "description": "Required. The code to be executed."
          }
        },
        "required": [
          "language",
          "code"
        ],
        "description": "Code generated by the model that is meant to be executed, and the result\nreturned to the model.\n\nOnly generated when using the `CodeExecution` tool, in which the code will\nbe automatically executed, and a corresponding `CodeExecutionResult` will\nalso be generated."
      },
      "LogprobsResult": {
        "type": "object",
        "description": "Logprobs Result",
        "properties": {
          "logProbabilitySum": {
            "description": "Sum of log probabilities for all tokens.",
            "type": "number",
            "format": "float"
          },
          "topCandidates": {
            "description": "Length = total number of decoding steps.",
            "items": {
              "$ref": "#/components/schemas/TopCandidates"
            },
            "type": "array"
          },
          "chosenCandidates": {
            "description": "Length = total number of decoding steps.\nThe chosen candidates may or may not be in top_candidates.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LogprobsResultCandidate"
            }
          }
        }
      },
      "CompositeMedia": {
        "description": "A sequence of media data references representing composite data.\nIntroduced to support Bigstore composite objects. For details, visit\nhttp://go/bigstore-composites.",
        "properties": {
          "length": {
            "description": "Size of the data, in bytes",
            "format": "int64",
            "type": "string"
          },
          "referenceType": {
            "type": "string",
            "enum": [
              "PATH",
              "BLOB_REF",
              "INLINE",
              "BIGSTORE_REF",
              "COSMO_BINARY_REFERENCE"
            ],
            "x-google-enum-descriptions": [
              "Reference contains a GFS path or a local path.",
              "Reference points to a blobstore object. This could be either\na v1 blob_ref or a v2 blobstore2_info. Clients should check\nblobstore2_info first, since v1 is being deprecated.",
              "Data is included into this proto buffer",
              "Reference points to a bigstore object",
              "Indicates the data is stored in cosmo_binary_reference."
            ],
            "description": "Describes what the field reference contains."
          },
          "blobRef": {
            "format": "byte",
            "description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF\nThis should be the byte representation of a blobstore.BlobRef.\nSince Blobstore is deprecating v1, use blobstore2_info instead.\nFor now, any v2 blob will also be represented in this field as\nv1 BlobRef.",
            "deprecated": true,
            "type": "string"
          },
          "inline": {
            "format": "byte",
            "type": "string",
            "description": "Media data, set if reference_type is INLINE"
          },
          "md5Hash": {
            "type": "string",
            "description": "MD5 hash for the payload.",
            "format": "byte"
          },
          "sha1Hash": {
            "format": "byte",
            "type": "string",
            "description": "SHA-1 hash for the payload."
          },
          "cosmoBinaryReference": {
            "format": "byte",
            "description": "A binary data reference for a media download. Serves as a\ntechnology-agnostic binary reference in some Google infrastructure.\nThis value is a serialized storage_cosmo.BinaryReference proto. Storing\nit as bytes is a hack to get around the fact that the cosmo proto\n(as well as others it includes) doesn't support JavaScript. This\nprevents us from including the actual type of this field.",
            "type": "string"
          },
          "objectId": {
            "description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ObjectId"
              }
            ]
          },
          "path": {
            "type": "string",
            "description": "Path to the data, set if reference_type is PATH"
          },
          "blobstore2Info": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Blobstore2Info"
              }
            ],
            "description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers\nto a v2 blob."
          },
          "crc32cHash": {
            "type": "integer",
            "description": "crc32.c hash for the payload.",
            "maximum": 4294967295,
            "format": "int64",
            "minimum": 0
          }
        },
        "type": "object"
      },
      "Blob": {
        "description": "Raw media bytes.\n\nText should not be sent as raw bytes, use the 'text' field.",
        "properties": {
          "displayName": {
            "description": "Optional. Specifies the name used to refer to this blob to the model (e.g.\n\"my_blob.png\"). Used as the blob reference identifier when\n`verbalization_mode` is set to `REFERENCE_ONLY`.",
            "type": "string"
          },
          "data": {
            "type": "string",
            "format": "byte",
            "description": "Raw bytes for media formats."
          },
          "mimeType": {
            "description": "The IANA standard MIME type of the source data.\nExamples of supported types:\n- Images: image/png, image/jpeg, image/jpg, image/webp, image/heic,\nimage/heif, image/gif, image/avif\n- Audio: audio/*, video/audio/s16le, video/audio/wav\n- Video: video/*\n- Text: text/plain, text/html, text/css, text/javascript,\ntext/x-typescript, text/csv, text/markdown, text/x-python, text/xml,\ntext/rtf, video/text/timestamp\n- Applications: application/x-javascript, application/x-typescript,\napplication/x-python-code, application/json, application/x-ipynb+json,\napplication/rtf, application/pdf For additional context,\nsee [Supported file\nformats](https://ai.google.dev/gemini-api/docs/file-input-methods#supported-content-types).\n//",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FunctionResponse": {
        "description": "The result output from a `FunctionCall` that contains a string\nrepresenting the `FunctionDeclaration.name` and a structured JSON\nobject containing any output from the function is used as context to\nthe model. This should contain the result of a`FunctionCall` made\nbased on model prediction.",
        "type": "object",
        "properties": {
          "willContinue": {
            "type": "boolean",
            "description": "Optional. Signals that function call continues, and more responses will be\nreturned, turning the function call into a generator.\nIs only applicable to NON_BLOCKING function calls, is ignored otherwise.\nIf set to false, future responses will not be considered.\nIt is allowed to return empty `response` with `will_continue=False` to\nsignal that the function call is finished. This may still trigger the model\ngeneration. To avoid triggering the generation and finish the function\ncall, additionally set `scheduling` to `SILENT`."
          },
          "id": {
            "description": "Optional. The identifier of the function call this response is for. Populated by the\nclient to match the corresponding function call `id`.",
            "type": "string"
          },
          "parts": {
            "type": "array",
            "description": "Optional. Ordered `Parts` that constitute a function response. Parts may have\ndifferent IANA MIME types.",
            "items": {
              "$ref": "#/components/schemas/FunctionResponsePart"
            }
          },
          "scheduling": {
            "type": "string",
            "enum": [
              "SCHEDULING_UNSPECIFIED",
              "SILENT",
              "WHEN_IDLE",
              "INTERRUPT"
            ],
            "x-google-enum-descriptions": [
              "This value is unused.",
              "Only add the result to the conversation context, do not interrupt or\ntrigger generation.",
              "Add the result to the conversation context, and prompt to generate output\nwithout interrupting ongoing generation.",
              "Add the result to the conversation context, interrupt ongoing generation\nand prompt to generate output."
            ],
            "description": "Optional. Specifies how the response should be scheduled in the conversation.\nOnly applicable to NON_BLOCKING function calls, is ignored otherwise.\nDefaults to WHEN_IDLE."
          },
          "response": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "description": "Required. The function response in JSON object format.\nCallers can use any keys of their choice that fit the function's syntax\nto return the function output, e.g. \"output\", \"result\", etc.\nIn particular, if the function call failed to execute, the response can\nhave an \"error\" key to return error details to the model.\n\nMultimedia can be included by using a subobject containing a single \"$ref\"\nkey whose value is the `inline_data.display_name` of a\n`FunctionResponsePart` holding the multimedia.\nSee https://ai.google.dev/gemini-api/docs/function-calling#multimodal.",
            "type": "object"
          },
          "name": {
            "type": "string",
            "description": "Required. The name of the function to call.\nMust be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum\nlength of 128."
          }
        },
        "required": [
          "name",
          "response"
        ]
      },
      "BatchEmbedTextRequest": {
        "properties": {
          "requests": {
            "items": {
              "$ref": "#/components/schemas/EmbedTextRequest"
            },
            "type": "array",
            "description": "Optional. Embed requests for the batch. Only one of `texts` or `requests` can be set."
          },
          "texts": {
            "items": {
              "type": "string"
            },
            "description": "Optional. The free-form input texts that the model will turn into an embedding. The\ncurrent limit is 100 texts, over which an error will be thrown.",
            "type": "array"
          }
        },
        "description": "Batch request to get a text embedding from the model.",
        "type": "object"
      },
      "EmbedContentBatchStats": {
        "properties": {
          "failedRequestCount": {
            "description": "Output only. The number of requests that failed to be processed.",
            "type": "string",
            "readOnly": true,
            "format": "int64"
          },
          "successfulRequestCount": {
            "format": "int64",
            "description": "Output only. The number of requests that were successfully processed.",
            "readOnly": true,
            "type": "string"
          },
          "requestCount": {
            "type": "string",
            "description": "Output only. The number of requests in the batch.",
            "format": "int64",
            "readOnly": true
          },
          "pendingRequestCount": {
            "readOnly": true,
            "description": "Output only. The number of requests that are still pending processing.",
            "format": "int64",
            "type": "string"
          }
        },
        "description": "Stats about the batch.",
        "type": "object"
      },
      "InputFeedback": {
        "description": "Feedback related to the input data used to answer the question, as opposed\nto the model-generated response to the question.",
        "type": "object",
        "properties": {
          "safetyRatings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SafetyRating"
            },
            "description": "Ratings for safety of the input.\nThere is at most one rating per category."
          },
          "blockReason": {
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "Input was blocked due to safety reasons. Inspect\n`safety_ratings` to understand which safety category blocked it.",
              "Input was blocked due to other reasons."
            ],
            "description": "Optional. If set, the input was blocked and no candidates are returned.\nRephrase the input.",
            "type": "string",
            "enum": [
              "BLOCK_REASON_UNSPECIFIED",
              "SAFETY",
              "OTHER"
            ]
          }
        }
      },
      "GeneratedFile": {
        "type": "object",
        "properties": {
          "state": {
            "readOnly": true,
            "x-google-enum-descriptions": [
              "The default value. This value is used if the state is omitted.",
              "Being generated.",
              "Generated and is ready for download.",
              "Failed to generate the GeneratedFile."
            ],
            "description": "Output only. The state of the GeneratedFile.",
            "type": "string",
            "enum": [
              "STATE_UNSPECIFIED",
              "GENERATING",
              "GENERATED",
              "FAILED"
            ]
          },
          "mimeType": {
            "description": "MIME type of the generatedFile.",
            "type": "string"
          },
          "name": {
            "description": "Identifier. The name of the generated file.\nExample: `generatedFiles/abc-123`",
            "type": "string",
            "x-google-identifier": true
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status"
              }
            ],
            "description": "Error details if the GeneratedFile ends up in the STATE_FAILED state."
          }
        },
        "description": "A file generated on behalf of a user."
      },
      "AudioTranscriptionConfig": {
        "description": "The audio transcription configuration.",
        "type": "object",
        "properties": {
          "adaptationPhrases": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Optional. A list of phrases used for speech adaptation, which biases the ASR model to\nimprove recognition of these specific terms.",
            "deprecated": true
          },
          "mode": {
            "type": "string",
            "enum": [
              "MODE_UNSPECIFIED",
              "VERBATIM",
              "SMART"
            ],
            "x-google-enum-descriptions": [
              "Unspecified transcription mode.",
              "Verbatim transcription mode.",
              "Smart transcription mode."
            ],
            "description": "Optional. Configures transcription mode. Supported values: `VERBATIM`,\n`SMART`. If unspecified, defaults to `VERBATIM` transcription.\nIn `SMART` mode, the model performs disfluency removal (eliminating\nfiller words, repetitions, and false starts), light grammatical cleanup,\nautomatic formatting (paragraphs, bullet points, numbered lists), and\nminor user edits (inline self-corrections).\nTimestamps and diarization are incompatible with mode `SMART`."
          },
          "languageCodes": {
            "description": "Optional. BCP-47 language codes providing hints about the languages present in the\naudio. If omitted or empty, defaults to automatic language detection.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "wordTimestamp": {
            "description": "Optional. Configures word-level timestamp generation.",
            "type": "boolean"
          },
          "diarization": {
            "type": "boolean",
            "description": "Optional. Configures speaker diarization."
          },
          "customVocabulary": {
            "items": {
              "type": "string"
            },
            "description": "Optional. A list of custom vocabulary phrases to bias the speech recognition model\ntoward recognizing specific terms (product names, proper nouns, jargon).",
            "type": "array"
          },
          "languageAuto": {
            "deprecated": true,
            "description": "Optional. The model will detect the language automatically.",
            "allOf": [
              {
                "$ref": "#/components/schemas/LanguageAuto"
              }
            ]
          },
          "languageHints": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LanguageHints"
              }
            ],
            "description": "Optional. Specifies one or more languages in the audio.",
            "deprecated": true
          }
        }
      },
      "UploadEnvironmentFileResponse": {
        "properties": {
          "files": {
            "description": "List of files created or extracted in the environment.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnvironmentFile"
            }
          }
        },
        "description": "Response for `UploadEnvironmentFile`.",
        "type": "object"
      },
      "ImageConfig": {
        "description": "Config for image generation features.",
        "type": "object",
        "properties": {
          "imageSize": {
            "description": "Optional. Specifies the size of generated images. Supported values are `512`, `1K`,\n`2K`, `4K`. If not specified, the model will use default value `1K`.",
            "type": "string"
          },
          "aspectRatio": {
            "description": "Optional. The aspect ratio of the image to generate. Supported aspect ratios: `1:1`,\n`1:4`, `4:1`, `1:8`, `8:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`,\n`9:16`, `16:9`, or `21:9`.\n\nIf not specified, the model will choose a default aspect ratio based on any\nreference images provided.",
            "type": "string"
          }
        }
      },
      "RegisterFilesResponse": {
        "description": "Response for `RegisterFiles`.",
        "type": "object",
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/File"
            },
            "type": "array",
            "description": "The registered files to be used when calling GenerateContent."
          }
        }
      },
      "EnvironmentNetworkEgressAllowlist": {
        "description": "Network egress configuration for the environment.",
        "type": "object",
        "properties": {
          "allowlist": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EgressRule"
            },
            "description": "List of allowed domains and their configurations. Set to `\"disabled\"`\nto block all network egress."
          }
        }
      },
      "InputConfig": {
        "type": "object",
        "description": "Configures the input to the batch request.",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "The name of the `File` containing the input requests."
          },
          "requests": {
            "description": "The requests to be processed in the batch.",
            "allOf": [
              {
                "$ref": "#/components/schemas/InlinedRequests"
              }
            ]
          }
        }
      },
      "CountTextTokensRequest": {
        "description": "Counts the number of tokens in the `prompt` sent to a model.\n\nModels may tokenize text differently, so each model may return a different\n`token_count`.",
        "type": "object",
        "required": [
          "prompt"
        ],
        "properties": {
          "prompt": {
            "description": "Required. The free-form input text given to the model as a prompt.",
            "allOf": [
              {
                "$ref": "#/components/schemas/TextPrompt"
              }
            ]
          }
        }
      },
      "PredictRequest": {
        "properties": {
          "parameters": {
            "description": "Optional. The parameters that govern the prediction call."
          },
          "labels": {
            "description": "Optional. Labels with user-defined metadata for the request.\n\nOptional. Labels must follow standard unified Cloud label requirements:\n- Label keys must start with a letter.\n- Label keys and values can be no longer than 63 characters (Unicode\n  codepoints) and can only contain lowercase letters, numeric characters,\n  underscores, and dashes.\n- International characters are allowed.\n\nUsage:\n-  Safety identifiers from aggregators: Use the key `safety_identifier`\n   (e.g. `{\"safety_identifier\": \"user_session_123\"}`)",
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          },
          "instances": {
            "description": "Required. The instances that are the input to the prediction call.",
            "type": "array",
            "items": {}
          }
        },
        "required": [
          "instances"
        ],
        "type": "object",
        "description": "Request message for PredictionService.Predict."
      },
      "DynamicRetrievalConfig": {
        "type": "object",
        "description": "Describes the options to customize dynamic retrieval.",
        "properties": {
          "dynamicThreshold": {
            "type": "number",
            "description": "The threshold to be used in dynamic retrieval.\nIf not set, a system default value is used.",
            "format": "float"
          },
          "mode": {
            "description": "The mode of the predictor to be used in dynamic retrieval.",
            "x-google-enum-descriptions": [
              "Always trigger retrieval.",
              "Run retrieval only when system decides it is necessary."
            ],
            "type": "string",
            "enum": [
              "MODE_UNSPECIFIED",
              "MODE_DYNAMIC"
            ]
          }
        }
      },
      "ToolConfig": {
        "type": "object",
        "description": "The Tool configuration containing parameters for specifying `Tool` use\nin the request.",
        "properties": {
          "functionCallingConfig": {
            "description": "Optional. Function calling config.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FunctionCallingConfig"
              }
            ]
          },
          "retrievalConfig": {
            "description": "Optional. Retrieval config.",
            "allOf": [
              {
                "$ref": "#/components/schemas/RetrievalConfig"
              }
            ]
          },
          "includeServerSideToolInvocations": {
            "description": "Optional. If true, the API response will include the server-side tool calls and\nresponses within the `Content` message. This allows clients to\nobserve the server's tool interactions.",
            "type": "boolean"
          }
        }
      },
      "ModelStage": {
        "type": "string",
        "enum": [
          "MODEL_STAGE_UNSPECIFIED",
          "UNSTABLE_EXPERIMENTAL",
          "EXPERIMENTAL",
          "PREVIEW",
          "STABLE",
          "LEGACY",
          "DEPRECATED",
          "RETIRED"
        ],
        "x-google-enum-descriptions": [
          "Unspecified model stage.",
          "The underlying model is subject to lots of tunings.",
          "Models in this stage are for experimental purposes only.",
          "Models in this stage are more mature than experimental models.",
          "Models in this stage are considered stable and ready for production use.",
          "If the model is on this stage, it means that this model is on the path to\ndeprecation in near future. Only existing customers can use this model.",
          "Models in this stage are deprecated. These models cannot be used.",
          "Models in this stage are retired. These models cannot be used."
        ],
        "x-google-enum-deprecated": [
          false,
          true,
          false,
          false,
          false,
          false,
          true,
          false
        ]
      },
      "MultiSpeakerVoiceConfig": {
        "description": "The configuration for the multi-speaker setup.",
        "required": [
          "speakerVoiceConfigs"
        ],
        "type": "object",
        "properties": {
          "speakerVoiceConfigs": {
            "type": "array",
            "description": "Required. All the enabled speaker voices.",
            "items": {
              "$ref": "#/components/schemas/SpeakerVoiceConfig"
            }
          }
        }
      },
      "ListModelsResponse": {
        "properties": {
          "models": {
            "description": "The returned Models.",
            "items": {
              "$ref": "#/components/schemas/Model"
            },
            "type": "array"
          },
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\n\nIf this field is omitted, there are no more pages.",
            "type": "string"
          }
        },
        "description": "Response from `ListModel` containing a paginated list of Models.",
        "type": "object"
      },
      "InlinedRequest": {
        "type": "object",
        "required": [
          "request"
        ],
        "description": "The request to be processed in the batch.",
        "properties": {
          "metadata": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "description": "Optional. The metadata to be associated with the request.",
            "type": "object"
          },
          "request": {
            "description": "Required. The request to be processed in the batch.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            ]
          }
        }
      },
      "GroundingChunk": {
        "properties": {
          "image": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Image"
              }
            ],
            "description": "Optional. Grounding chunk from image search."
          },
          "retrievedContext": {
            "description": "Optional. Grounding chunk from context retrieved by the file search tool.",
            "allOf": [
              {
                "$ref": "#/components/schemas/RetrievedContext"
              }
            ]
          },
          "maps": {
            "description": "Optional. Grounding chunk from Google Maps.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Maps"
              }
            ]
          },
          "web": {
            "description": "Grounding chunk from the web.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Web"
              }
            ]
          }
        },
        "description": "A `GroundingChunk` represents a segment of supporting evidence that grounds\nthe model's response. It can be a chunk from the web, a retrieved context\nfrom a file, or information from Google Maps.",
        "type": "object"
      },
      "SafetyRating": {
        "type": "object",
        "properties": {
          "blocked": {
            "description": "Was this content blocked because of this rating?",
            "type": "boolean"
          },
          "probability": {
            "x-google-enum-descriptions": [
              "Probability is unspecified.",
              "Content has a negligible chance of being unsafe.",
              "Content has a low chance of being unsafe.",
              "Content has a medium chance of being unsafe.",
              "Content has a high chance of being unsafe."
            ],
            "description": "Required. The probability of harm for this content.",
            "type": "string",
            "enum": [
              "HARM_PROBABILITY_UNSPECIFIED",
              "NEGLIGIBLE",
              "LOW",
              "MEDIUM",
              "HIGH"
            ]
          },
          "category": {
            "description": "Required. The category for this rating.",
            "allOf": [
              {
                "$ref": "#/components/schemas/HarmCategory"
              }
            ]
          }
        },
        "required": [
          "category",
          "probability"
        ],
        "description": "Safety rating for a piece of content.\n\nThe safety rating contains the category of harm and the\nharm probability level in that category for a piece of content.\nContent is classified for safety across a number of\nharm categories and the probability of the harm classification is included\nhere."
      },
      "TaskType": {
        "x-google-enum-descriptions": [
          "Unset value, which will default to one of the other enum values.",
          "Specifies the given text is a query in a search/retrieval setting.",
          "Specifies the given text is a document from the corpus being searched.",
          "Specifies the given text will be used for STS.",
          "Specifies that the given text will be classified.",
          "Specifies that the embeddings will be used for clustering.",
          "Specifies that the given text will be used for question answering.",
          "Specifies that the given text will be used for fact verification.",
          "Specifies that the given text will be used for code retrieval."
        ],
        "type": "string",
        "enum": [
          "TASK_TYPE_UNSPECIFIED",
          "RETRIEVAL_QUERY",
          "RETRIEVAL_DOCUMENT",
          "SEMANTIC_SIMILARITY",
          "CLASSIFICATION",
          "CLUSTERING",
          "QUESTION_ANSWERING",
          "FACT_VERIFICATION",
          "CODE_RETRIEVAL_QUERY"
        ]
      },
      "PrebuiltVoiceConfig": {
        "properties": {
          "voiceName": {
            "description": "Optional. The name of the preset voice to use.",
            "type": "string"
          }
        },
        "type": "object",
        "description": "The configuration for the prebuilt speaker to use."
      },
      "WebSearch": {
        "description": "Standard web search for grounding and related configurations.",
        "type": "object"
      },
      "ListGeneratedFilesResponse": {
        "description": "Response for `ListGeneratedFiles`.",
        "type": "object",
        "properties": {
          "nextPageToken": {
            "description": "A token that can be sent as a `page_token` into a subsequent\n`ListGeneratedFiles` call.",
            "type": "string"
          },
          "generatedFiles": {
            "type": "array",
            "description": "The list of `GeneratedFile`s.",
            "items": {
              "$ref": "#/components/schemas/GeneratedFile"
            }
          }
        }
      },
      "CachedContentUsageMetadata": {
        "description": "Metadata on the usage of the cached content.",
        "type": "object",
        "properties": {
          "totalTokenCount": {
            "type": "integer",
            "description": "Total number of tokens that the cached content consumes.",
            "format": "int32"
          }
        }
      },
      "CodeExecution": {
        "description": "Tool that executes code generated by the model, and automatically returns\nthe result to the model.\n\nSee also `ExecutableCode` and `CodeExecutionResult` which are only generated\nwhen using this tool.",
        "type": "object"
      },
      "UploadToFileSearchStoreRequest": {
        "properties": {
          "displayName": {
            "type": "string",
            "description": "Optional. Display name of the created document."
          },
          "chunkingConfig": {
            "description": "Optional. Config for telling the service how to chunk the data.\nIf not provided, the service will use default parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ChunkingConfig"
              }
            ]
          },
          "customMetadata": {
            "description": "Custom metadata to be associated with the data.",
            "items": {
              "$ref": "#/components/schemas/CustomMetadata"
            },
            "type": "array"
          },
          "mimeType": {
            "type": "string",
            "description": "Optional. MIME type of the data. If not provided, it will be inferred from the\nuploaded content."
          }
        },
        "description": "Request for `UploadToFileSearchStore`.",
        "type": "object"
      },
      "CreateFileRequest": {
        "properties": {
          "file": {
            "description": "Optional. Metadata for the file to create.",
            "allOf": [
              {
                "$ref": "#/components/schemas/File"
              }
            ]
          }
        },
        "description": "Request for `CreateFile`.",
        "type": "object"
      },
      "Media": {
        "properties": {
          "video": {
            "description": "Video as the only one for now.  This is mimicking Vertex proto.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Video"
              }
            ]
          }
        },
        "type": "object",
        "description": "A proto encapsulate various type of media."
      },
      "GroundingChunkStringList": {
        "properties": {
          "values": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "description": "The string values of the list."
          }
        },
        "type": "object",
        "description": "A list of string values."
      },
      "HistoryConfig": {
        "description": "History configuration.\n\nThis message is included in the session configuration as\n`BidiGenerateContentSetup.history_config`. Configures the exchange of\nhistory messages.",
        "type": "object",
        "properties": {
          "initialHistoryInClientContent": {
            "type": "boolean",
            "description": "Optional. If true, after sending `setup_complete`, the server will wait\nand at first process `client_content` messages until `turn_complete` is\n`true`. This initial history will not trigger a model call and\nmay end with role `MODEL`. After `turn_complete` is `true`, the client\ncan start the realtime conversation via `realtime_input`."
          }
        }
      },
      "AsyncBatchEmbedContentOperation": {
        "description": "This resource represents a long-running operation where metadata and response fields are strongly typed.",
        "allOf": [
          {
            "$ref": "#/components/schemas/BaseOperation"
          },
          {
            "type": "object",
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/EmbedContentBatch"
              },
              "response": {
                "$ref": "#/components/schemas/AsyncBatchEmbedContentResponse"
              }
            }
          }
        ],
        "type": "object"
      },
      "Web": {
        "description": "Chunk from the web.",
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. Title of the chunk."
          },
          "uri": {
            "description": "Output only. URI reference of the chunk.",
            "readOnly": true,
            "type": "string"
          }
        }
      },
      "CreateFileResponse": {
        "type": "object",
        "description": "Response for `CreateFile`.",
        "properties": {
          "file": {
            "description": "Metadata for the created file.",
            "allOf": [
              {
                "$ref": "#/components/schemas/File"
              }
            ]
          }
        }
      },
      "Status": {
        "type": "object",
        "description": "The `Status` type defines a logical error model that is suitable for\ndifferent programming environments, including REST APIs and RPC APIs. It is\nused by [gRPC](https://github.com/grpc). Each `Status` message contains\nthree pieces of data: error code, error message, and error details.\n\nYou can find out more about this error model and how to work with it in the\n[API Design Guide](https://cloud.google.com/apis/design/errors).",
        "properties": {
          "message": {
            "description": "A developer-facing error message, which should be in English. Any\nuser-facing error message should be localized and sent in the\ngoogle.rpc.Status.details field, or localized by the client.",
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "description": "Properties of the object. Contains field @type with type URL."
              }
            },
            "description": "A list of messages that carry the error details.  There is a common set of\nmessage types for APIs to use."
          },
          "code": {
            "type": "integer",
            "description": "The status code, which should be an enum value of google.rpc.Code.",
            "format": "int32"
          }
        }
      },
      "MetadataFilter": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "Required. The key of the metadata to filter on."
          },
          "conditions": {
            "type": "array",
            "description": "Required. The `Condition`s for the given key that will trigger this filter. Multiple\n`Condition`s are joined by logical ORs.",
            "items": {
              "$ref": "#/components/schemas/Condition"
            }
          }
        },
        "required": [
          "key",
          "conditions"
        ],
        "description": "User provided filter to limit retrieval based on `Chunk` or `Document` level\nmetadata values.\nExample (genre = drama OR genre = action):\n  key = \"document.custom_metadata.genre\"\n  conditions = [{string_value = \"drama\", operation = EQUAL},\n                {string_value = \"action\", operation = EQUAL}]"
      },
      "UrlMetadata": {
        "properties": {
          "retrievedUrl": {
            "description": "Retrieved url by the tool.",
            "type": "string"
          },
          "urlRetrievalStatus": {
            "type": "string",
            "enum": [
              "URL_RETRIEVAL_STATUS_UNSPECIFIED",
              "URL_RETRIEVAL_STATUS_SUCCESS",
              "URL_RETRIEVAL_STATUS_ERROR",
              "URL_RETRIEVAL_STATUS_PAYWALL",
              "URL_RETRIEVAL_STATUS_UNSAFE"
            ],
            "description": "Status of the url retrieval.",
            "x-google-enum-descriptions": [
              "Default value. This value is unused.",
              "Url retrieval is successful.",
              "Url retrieval is failed due to error.",
              "Url retrieval is failed because the content is behind paywall.",
              "Url retrieval is failed because the content is unsafe."
            ]
          }
        },
        "type": "object",
        "description": "Context of the a single url retrieval."
      },
      "ChunkingConfig": {
        "description": "Parameters for telling the service how to chunk the file.\ninspired by\ngoogle3/cloud/ai/platform/extension/lib/retrieval/config/chunker_config.proto",
        "type": "object",
        "properties": {
          "whiteSpaceConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/WhiteSpaceConfig"
              }
            ],
            "description": "White space chunking configuration."
          }
        }
      },
      "PredictResponse": {
        "type": "object",
        "description": "Response message for [PredictionService.Predict].",
        "properties": {
          "predictions": {
            "type": "array",
            "description": "The outputs of the prediction call.",
            "items": {}
          }
        }
      },
      "EmbedContentConfig": {
        "properties": {
          "autoTruncate": {
            "description": "Optional. Whether to silently truncate the input content if it's longer\nthan the maximum sequence length.",
            "type": "boolean"
          },
          "outputDimensionality": {
            "description": "Optional. Reduced dimension for the output embedding. If set, excessive\nvalues in the output embedding are truncated from the end.",
            "type": "integer",
            "format": "int32"
          },
          "taskType": {
            "allOf": [
              {
                "$ref": "#/components/schemas/TaskType"
              }
            ],
            "description": "Optional. The task type of the embedding."
          },
          "documentOcr": {
            "description": "Optional. Whether to enable OCR for document content.",
            "type": "boolean"
          },
          "title": {
            "description": "Optional. The title for the text.",
            "type": "string"
          },
          "audioTrackExtraction": {
            "type": "boolean",
            "description": "Optional. Whether to extract audio from video content."
          }
        },
        "description": "Configurations for the EmbedContent request.",
        "type": "object"
      },
      "GoogleMaps": {
        "description": "The GoogleMaps Tool that provides geospatial context for the user's query.",
        "type": "object",
        "properties": {
          "enableWidget": {
            "description": "Optional. Whether to return a widget context token in the GroundingMetadata of the\nresponse. Developers can use the widget context token to render a Google\nMaps widget with geospatial context related to the places that the model\nreferences in the response.",
            "type": "boolean"
          }
        }
      },
      "ImportFileResponse": {
        "type": "object",
        "description": "Response for `ImportFile` to import a File API file with a `FileSearchStore`.",
        "properties": {
          "documentName": {
            "description": "Immutable. Identifier. The identifier for the `Document` imported.\nExample:\n`fileSearchStores/my-file-search-store-123/documents/my-awesome-doc-123a456b789c`",
            "x-google-immutable": true,
            "x-google-identifier": true,
            "type": "string"
          },
          "parent": {
            "description": "The name of the `FileSearchStore` containing `Document`s.\nExample: `fileSearchStores/my-file-search-store-123`",
            "type": "string"
          }
        }
      },
      "Part": {
        "description": "A datatype containing media that is part of a multi-part `Content` message.\n\nA `Part` consists of data which has an associated datatype. A `Part` can only\ncontain one of the accepted types in `Part.data`.\n\nA `Part` must have a fixed IANA MIME type identifying the type and subtype\nof the media if the `inline_data` field is filled with raw bytes.",
        "properties": {
          "fileData": {
            "allOf": [
              {
                "$ref": "#/components/schemas/FileData"
              }
            ],
            "description": "URI based data."
          },
          "thoughtSignature": {
            "format": "byte",
            "description": "Optional. An opaque signature for the thought so it can be reused in subsequent\nrequests.",
            "type": "string"
          },
          "toolCall": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ToolCall"
              }
            ],
            "description": "Server-side tool call. This field is populated when the model\npredicts a tool invocation that should be executed on the server.\nThe client is expected to echo this message back to the API."
          },
          "thought": {
            "description": "Optional. Indicates if the part is thought from the model.",
            "type": "boolean"
          },
          "text": {
            "description": "Inline text.",
            "type": "string"
          },
          "mediaProcessing": {
            "type": "string",
            "enum": [
              "MEDIA_PROCESSING_UNSPECIFIED",
              "STATIC",
              "AGENTIC"
            ],
            "x-google-enum-descriptions": [
              "Defaults to model-specific processing.",
              "Fixed-rate frame extraction. All frames placed in context.",
              "Model-driven dynamic navigation. Recommended for most use cases."
            ],
            "description": "Optional. How the model processes this part's media for understanding.\nOnly meaningful for video parts (`inline_data` or `file_data` with video\nmime). Non-video parts ignore this field."
          },
          "partMetadata": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "description": "Custom metadata associated with the Part.\nAgents using genai.Part as content representation may need to keep track\nof the additional information. For example it can be name of a file/source\nfrom which the Part originates or a way to multiplex multiple Part streams.",
            "type": "object"
          },
          "videoMetadata": {
            "description": "Optional. Video metadata. The metadata should only be specified while the video\ndata is presented in inline_data or file_data.",
            "allOf": [
              {
                "$ref": "#/components/schemas/VideoMetadata"
              }
            ]
          },
          "executableCode": {
            "description": "Code generated by the model that is meant to be executed.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ExecutableCode"
              }
            ]
          },
          "audioTranscription": {
            "description": "Optional. Audio (input or output) transcription.\nThis is only set when this Part contains audio data.",
            "allOf": [
              {
                "$ref": "#/components/schemas/AudioTranscription"
              }
            ]
          },
          "functionResponse": {
            "description": "The result output of a `FunctionCall` that contains a string\nrepresenting the `FunctionDeclaration.name` and a structured JSON\nobject containing any output from the function is used as context to\nthe model.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FunctionResponse"
              }
            ]
          },
          "toolResponse": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ToolResponse"
              }
            ],
            "description": "The output from a server-side `ToolCall` execution. This field is\npopulated by the client with the results of executing the\ncorresponding `ToolCall`."
          },
          "mediaResolution": {
            "allOf": [
              {
                "$ref": "#/components/schemas/V1mainMediaResolution"
              }
            ],
            "description": "Optional. Media resolution for the input media."
          },
          "inlineData": {
            "description": "Inline media bytes.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Blob"
              }
            ]
          },
          "codeExecutionResult": {
            "description": "Result of executing the `ExecutableCode`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CodeExecutionResult"
              }
            ]
          },
          "functionCall": {
            "description": "A predicted `FunctionCall` returned from the model that contains\na string representing the `FunctionDeclaration.name` with the\narguments and their values.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FunctionCall"
              }
            ]
          },
          "speechMetadata": {
            "description": "Optional. Metadata applied to text parts to customize how they should be spoken or\nsynthesized, such as specifying speaker identity or speaking style.",
            "allOf": [
              {
                "$ref": "#/components/schemas/SpeechMetadata"
              }
            ]
          }
        },
        "type": "object"
      },
      "TuningSnapshot": {
        "type": "object",
        "properties": {
          "meanLoss": {
            "description": "Output only. The mean loss of the training examples for this step.",
            "readOnly": true,
            "format": "float",
            "type": "number"
          },
          "step": {
            "readOnly": true,
            "description": "Output only. The tuning step.",
            "type": "integer",
            "format": "int32"
          },
          "epoch": {
            "format": "int32",
            "type": "integer",
            "description": "Output only. The epoch this step was part of.",
            "readOnly": true
          },
          "computeTime": {
            "readOnly": true,
            "description": "Output only. The timestamp when this metric was computed.",
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Record for a single tuning step."
      },
      "BatchEmbedTextResponse": {
        "type": "object",
        "properties": {
          "embeddings": {
            "type": "array",
            "description": "Output only. The embeddings generated from the input text.",
            "items": {
              "$ref": "#/components/schemas/Embedding"
            },
            "readOnly": true
          }
        },
        "description": "The response to a EmbedTextRequest."
      },
      "UploadEnvironmentFileRequest": {
        "properties": {
          "overwrite": {
            "description": "Optional. Whether to overwrite the destination file if it already exists.",
            "type": "boolean"
          },
          "extract": {
            "type": "boolean",
            "description": "Optional. If true, treats the uploaded file as a tar/tar.gz archive and\nunpacks it into `path`."
          }
        },
        "description": "Request for `UploadEnvironmentFile`.",
        "type": "object"
      },
      "ImportFileRequest": {
        "properties": {
          "customMetadata": {
            "description": "Custom metadata to be associated with the file.",
            "items": {
              "$ref": "#/components/schemas/CustomMetadata"
            },
            "type": "array"
          },
          "fileName": {
            "type": "string",
            "description": "Required. The name of the `File` to import.\nExample: `files/abc-123`"
          },
          "chunkingConfig": {
            "description": "Optional. Config for telling the service how to chunk the file.\nIf not provided, the service will use default parameters.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ChunkingConfig"
              }
            ]
          }
        },
        "description": "Request for `ImportFile` to import a File API file with a `FileSearchStore`.",
        "type": "object",
        "required": [
          "fileName"
        ]
      },
      "ContentTypeInfo": {
        "type": "object",
        "description": "Detailed Content-Type information from Scotty. The Content-Type of the media\nwill typically be filled in by the header or Scotty's best_guess, but this\nextended information provides the backend with more information so that it\ncan make a better decision if needed. This is only used on media upload\nrequests from Scotty.",
        "properties": {
          "bestGuess": {
            "type": "string",
            "description": "Scotty's best guess of what the content type of the file is."
          },
          "fusionIdDetectionMetadata": {
            "type": "string",
            "description": "Metadata information from Fusion ID detection. Serialized\nFusionIdDetectionMetadata proto. Only set if from_fusion_id is set.",
            "format": "byte"
          },
          "fromFusionId": {
            "description": "The content type of the file detected by Fusion ID. go/fusionid",
            "type": "string"
          },
          "fromUrlPath": {
            "description": "The content type of the file derived from the file extension of the\nURL path.  The URL path is assumed to represent a file name (which\nis typically only true for agents that are providing a REST API).",
            "type": "string"
          },
          "fromFileName": {
            "description": "The content type of the file derived from the file extension of\nthe original file name used by the client.",
            "type": "string"
          },
          "fromHeader": {
            "type": "string",
            "description": "The content type of the file as specified in the request headers,\nmultipart headers, or RUPIO start request."
          },
          "fromBytes": {
            "type": "string",
            "description": "The content type of the file derived by looking at specific\nbytes (i.e. \"magic bytes\") of the actual file."
          }
        }
      },
      "GenerateTextResponse": {
        "description": "The response from the model, including candidate completions.",
        "properties": {
          "filters": {
            "items": {
              "$ref": "#/components/schemas/ContentFilter"
            },
            "type": "array",
            "description": "A set of content filtering metadata for the prompt and response\ntext.\n\nThis indicates which `SafetyCategory`(s) blocked a\ncandidate from this response, the lowest `HarmProbability`\nthat triggered a block, and the HarmThreshold setting for that category.\nThis indicates the smallest change to the `SafetySettings` that would be\nnecessary to unblock at least 1 response.\n\nThe blocking is configured by the `SafetySettings` in the request (or the\ndefault `SafetySettings` of the API)."
          },
          "candidates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TextCompletion"
            },
            "description": "Candidate responses from the model."
          },
          "safetyFeedback": {
            "description": "Returns any safety feedback related to content filtering.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SafetyFeedback"
            }
          }
        },
        "type": "object"
      },
      "ContentFilter": {
        "properties": {
          "message": {
            "description": "A string that describes the filtering behavior in more detail.",
            "type": "string"
          },
          "reason": {
            "description": "The reason content was blocked during request processing.",
            "type": "string",
            "x-google-enum-descriptions": [
              "A blocked reason was not specified.",
              "Content was blocked by safety settings.",
              "Content was blocked, but the reason is uncategorized."
            ],
            "enum": [
              "BLOCKED_REASON_UNSPECIFIED",
              "SAFETY",
              "OTHER"
            ]
          }
        },
        "type": "object",
        "description": "Content filtering metadata associated with processing a single request.\n\nContentFilter contains a reason and an optional supporting string. The reason\nmay be unspecified."
      },
      "GenerativeLanguageModality": {
        "type": "string",
        "enum": [
          "MODALITY_UNSPECIFIED",
          "TEXT",
          "IMAGE",
          "VIDEO",
          "AUDIO",
          "DOCUMENT"
        ],
        "x-google-enum-descriptions": [
          "Unspecified modality.",
          "Plain text.",
          "Image.",
          "Video.",
          "Audio.",
          "Document, e.g. PDF."
        ]
      },
      "AsyncBatchEmbedContentResponse": {
        "description": "Response for a `BatchGenerateContent` operation.",
        "type": "object",
        "properties": {
          "output": {
            "description": "Output only. The output of the batch request.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/EmbedContentBatchOutput"
              }
            ]
          }
        }
      },
      "DiffChecksumsResponse": {
        "properties": {
          "chunkSizeBytes": {
            "format": "int64",
            "type": "string",
            "description": "The chunk size of checksums.  Must be a multiple of 256KB."
          },
          "objectVersion": {
            "description": "The object version of the object the checksums are being returned for.",
            "type": "string"
          },
          "objectSizeBytes": {
            "format": "int64",
            "type": "string",
            "description": "The total size of the server object."
          },
          "checksumsLocation": {
            "description": "Exactly one of these fields must be populated.\n\nIf checksums_location is filled, the server will return the corresponding\ncontents to the user.  If object_location is filled, the server will\ncalculate the checksums based on the content there and return that to the\nuser.\nFor details on the format of the checksums,\nsee http://go/scotty-diff-protocol.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompositeMedia"
              }
            ]
          },
          "objectLocation": {
            "description": "If set, calculate the checksums based on the contents and return them to\nthe caller.",
            "allOf": [
              {
                "$ref": "#/components/schemas/CompositeMedia"
              }
            ]
          }
        },
        "type": "object",
        "description": "Backend response for a Diff get checksums response.\nFor details on the Scotty Diff protocol,\nvisit http://go/scotty-diff-protocol."
      },
      "GenerateContentRequest": {
        "type": "object",
        "description": "Request to generate a completion from the model.",
        "required": [
          "model",
          "contents"
        ],
        "properties": {
          "toolConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ToolConfig"
              }
            ],
            "description": "Optional. Tool configuration for any `Tool` specified in the request. Refer to the\n[Function calling\nguide](https://ai.google.dev/gemini-api/docs/function-calling#function_calling_mode)\nfor a usage example."
          },
          "contents": {
            "description": "Required. The content of the current conversation with the model.\n\nFor single-turn queries, this is a single instance. For multi-turn queries\nlike [chat](https://ai.google.dev/gemini-api/docs/text-generation#chat),\nthis is a repeated field that contains the conversation history and the\nlatest request.",
            "items": {
              "$ref": "#/components/schemas/Content"
            },
            "type": "array"
          },
          "model": {
            "description": "Required. The name of the `Model` to use for generating the completion.\n\nFormat: `models/{model}`.",
            "type": "string"
          },
          "continuationToken": {
            "format": "byte",
            "description": "Optional. An opaque continuation token used to resume generation from a\nprevious `GenerateContent` or `StreamGenerateContent` response that stopped\nwith `finish_reason` set to `CONTINUATION`.",
            "type": "string"
          },
          "labels": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object",
            "description": "Optional. Labels with user-defined metadata for the request.\n\nOptional. Labels must follow standard unified Cloud label requirements:\n- Label keys must start with a letter.\n- Label keys and values can be no longer than 63 characters (Unicode\n  codepoints) and can only contain lowercase letters, numeric characters,\n  underscores, and dashes.\n- International characters are allowed.\n\nUsage:\n-  Safety identifiers from aggregators: Use the key `safety_identifier`\n   (e.g. `{\"safety_identifier\": \"user_session_123\"}`)"
          },
          "serviceTier": {
            "description": "Optional. The service tier of the request.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ServiceTier"
              }
            ]
          },
          "generationConfig": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerationConfig"
              }
            ],
            "description": "Optional. Configuration options for model generation and outputs."
          },
          "cachedContent": {
            "type": "string",
            "description": "Optional. The name of the content\n[cached](https://ai.google.dev/gemini-api/docs/caching) to use as context\nto serve the prediction. Format: `cachedContents/{cachedContent}`"
          },
          "tools": {
            "items": {
              "$ref": "#/components/schemas/Tool"
            },
            "description": "Optional. A list of `Tools` the `Model` may use to generate the next response.\n\nA `Tool` is a piece of code that enables the system to interact with\nexternal systems to perform an action, or set of actions, outside of\nknowledge and scope of the `Model`. Supported `Tool`s are `Function` and\n`code_execution`. Refer to the [Function\ncalling](https://ai.google.dev/gemini-api/docs/function-calling) and the\n[Code execution](https://ai.google.dev/gemini-api/docs/code-execution)\nguides to learn more.",
            "type": "array"
          },
          "store": {
            "description": "Optional. Configures the logging behavior for a given request. If set, it takes\nprecedence over the project-level logging config.",
            "type": "boolean"
          },
          "safetySettings": {
            "items": {
              "$ref": "#/components/schemas/SafetySetting"
            },
            "type": "array",
            "description": "Optional. A list of unique `SafetySetting` instances for blocking unsafe content.\n\nThis will be enforced on the `GenerateContentRequest.contents` and\n`GenerateContentResponse.candidates`. There should not be more than one\nsetting for each `SafetyCategory` type. The API will block any contents and\nresponses that fail to meet the thresholds set by these settings. This list\noverrides the default settings for each `SafetyCategory` specified in the\nsafety_settings. If there is no `SafetySetting` for a given\n`SafetyCategory` provided in the list, the API will use the default safety\nsetting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH,\nHARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT,\nHARM_CATEGORY_HARASSMENT, HARM_CATEGORY_CIVIC_INTEGRITY,\nHARM_CATEGORY_JAILBREAK are supported.\nRefer to the [guide](https://ai.google.dev/gemini-api/docs/safety-settings)\nfor detailed information on available safety settings. Also refer to the\n[Safety guidance](https://ai.google.dev/gemini-api/docs/safety-guidance) to\nlearn how to incorporate safety considerations in your AI applications."
          },
          "systemInstruction": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ],
            "description": "Optional. Developer set [system\ninstruction(s)](https://ai.google.dev/gemini-api/docs/system-instructions).\nCurrently, text only."
          }
        }
      },
      "SpeechMetadata": {
        "type": "object",
        "properties": {
          "speaker": {
            "description": "Optional. Optional speaker name for multi-speaker synthesis.",
            "type": "string"
          },
          "style": {
            "type": "string",
            "description": "Optional. Optional style instruction for the speech synthesis."
          }
        },
        "description": "Speech metadata for `text` parts."
      },
      "ToolResponse": {
        "properties": {
          "toolType": {
            "description": "Required. The type of tool that was called, matching the `tool_type` in the\ncorresponding `ToolCall`.",
            "allOf": [
              {
                "$ref": "#/components/schemas/V1mainToolType"
              }
            ]
          },
          "response": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "type": "object",
            "description": "Optional. The tool response."
          },
          "id": {
            "type": "string",
            "description": "Optional. The identifier of the tool call this response is for."
          }
        },
        "required": [
          "toolType"
        ],
        "description": "The output from a server-side `ToolCall` execution. This message contains\nthe results of a tool invocation that was initiated by a `ToolCall`\nfrom the model. The client should pass this `ToolResponse` back to the API\nin a subsequent turn within a `Content` message, along with the corresponding\n`ToolCall`.",
        "type": "object"
      },
      "RegisterFilesRequest": {
        "description": "Request for `RegisterFiles`.",
        "type": "object",
        "required": [
          "uris"
        ],
        "properties": {
          "uris": {
            "type": "array",
            "description": "Required. The Google Cloud Storage URIs to register. Example: `gs://bucket/object`.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RetrievalConfig": {
        "description": "Retrieval config.",
        "properties": {
          "latLng": {
            "allOf": [
              {
                "$ref": "#/components/schemas/LatLng"
              }
            ],
            "description": "Optional. The location of the user."
          },
          "languageCode": {
            "description": "Optional. The language code of the user.\nLanguage code for content. Use language tags defined by\n[BCP47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt).",
            "type": "string"
          }
        },
        "type": "object"
      },
      "Empty": {
        "type": "object",
        "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n    service Foo {\n      rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n    }"
      },
      "ComputerUse": {
        "properties": {
          "excludedPredefinedFunctions": {
            "items": {
              "type": "string"
            },
            "description": "Optional. By default, predefined functions are included in the final model\ncall.\nSome of them can be explicitly excluded from being automatically\nincluded. This can serve two purposes:\n1. Using a more restricted / different action space.\n2. Improving the definitions / instructions of predefined functions.",
            "type": "array"
          },
          "enablePromptInjectionDetection": {
            "description": "Optional. Whether enable the prompt injection detection check on computer-use\nrequest.",
            "type": "boolean"
          },
          "environment": {
            "type": "string",
            "enum": [
              "ENVIRONMENT_UNSPECIFIED",
              "ENVIRONMENT_BROWSER",
              "ENVIRONMENT_MOBILE",
              "ENVIRONMENT_DESKTOP"
            ],
            "x-google-enum-descriptions": [
              "Defaults to browser.",
              "Operates in a web browser.",
              "Operates in a mobile environment.",
              "Operates in a desktop environment."
            ],
            "description": "Required. The environment being operated."
          },
          "disabledSafetyPolicies": {
            "type": "array",
            "description": "Optional. Disabled safety policies for computer use.",
            "items": {
              "x-google-enum-descriptions": [
                "Unspecified safety policy.",
                "Safety policy for financial transactions.",
                "Safety policy for sensitive data modification.",
                "Safety policy for communication tools (e.g. Gmail, Chat, Meet).",
                "Safety policy for account creation.",
                "Safety policy for data modification.",
                "Safety policy for user consent management.",
                "Safety policy for legal terms and agreements."
              ],
              "type": "string",
              "enum": [
                "SAFETY_POLICY_UNSPECIFIED",
                "FINANCIAL_TRANSACTIONS",
                "SENSITIVE_DATA_MODIFICATION",
                "COMMUNICATION_TOOL",
                "ACCOUNT_CREATION",
                "DATA_MODIFICATION",
                "USER_CONSENT_MANAGEMENT",
                "LEGAL_TERMS_AND_AGREEMENTS"
              ]
            }
          }
        },
        "type": "object",
        "required": [
          "environment"
        ],
        "description": "Computer Use tool type."
      },
      "EnvironmentFile": {
        "properties": {
          "modified": {
            "description": "Output only. The modification time of the file/directory.",
            "readOnly": true,
            "format": "date-time",
            "type": "string"
          },
          "path": {
            "description": "Output only. The full relative path within the environment\n(e.g., \"workspace/src/main.py\").",
            "readOnly": true,
            "type": "string"
          },
          "mime_type": {
            "description": "Output only. The MIME type of the file (e.g., \"text/python\", \"image/png\").\nEmpty for directories.\nNOLINT",
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "TYPE_UNSPECIFIED",
              "FILE",
              "DIRECTORY"
            ],
            "description": "Output only. The type of the entry.",
            "x-google-enum-descriptions": [
              "Unspecified type.",
              "A regular file.",
              "A directory."
            ],
            "readOnly": true
          },
          "size_bytes": {
            "description": "Output only. The size of the file/directory in bytes.\nNOLINT",
            "format": "int64",
            "readOnly": true,
            "type": "string"
          },
          "created": {
            "type": "string",
            "description": "Output only. The creation time of the file/directory.",
            "format": "date-time",
            "readOnly": true
          },
          "name": {
            "description": "Output only. The name of the file or directory (e.g., \"main.py\" or \"src\").",
            "readOnly": true,
            "type": "string"
          }
        },
        "description": "Metadata for a file or directory within an environment.",
        "type": "object"
      },
      "V1mainCreateTunedModelMetadata": {
        "properties": {
          "completedPercent": {
            "description": "The completed percentage for the tuning operation.",
            "format": "float",
            "type": "number"
          },
          "completedSteps": {
            "type": "integer",
            "description": "The number of steps completed.",
            "format": "int32"
          },
          "tunedModel": {
            "type": "string",
            "description": "Name of the tuned model associated with the tuning operation."
          },
          "snapshots": {
            "items": {
              "$ref": "#/components/schemas/V1mainTuningSnapshot"
            },
            "description": "Metrics collected during tuning.",
            "type": "array"
          },
          "totalSteps": {
            "type": "integer",
            "description": "The total number of tuning steps.",
            "format": "int32"
          }
        },
        "type": "object",
        "description": "Metadata about the state and progress of creating a tuned model returned from\nthe long-running operation"
      },
      "AuthToken": {
        "properties": {
          "bidiGenerateContentSetup": {
            "writeOnly": true,
            "x-google-immutable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/BidiGenerateContentSetup"
              }
            ],
            "description": "Optional. Input only. Immutable. Configuration specific to `BidiGenerateContent`."
          },
          "expireTime": {
            "writeOnly": true,
            "x-google-immutable": true,
            "type": "string",
            "description": "Optional. Input only. Immutable. An optional time after which, when using the resulting token, messages in\nBidiGenerateContent sessions will be rejected. (Gemini may preemptively\nclose the session after this time.)\n\nIf not set then this defaults to 30 minutes in the future. If set, this\nvalue must be less than 20 hours in the future.",
            "format": "date-time"
          },
          "newSessionExpireTime": {
            "writeOnly": true,
            "x-google-immutable": true,
            "type": "string",
            "description": "Optional. Input only. Immutable. The time after which new Live API sessions using the token resulting from\nthis request will be rejected.\n\nIf not set this defaults to 60 seconds in the future. If set, this value\nmust be less than 20 hours in the future.",
            "format": "date-time"
          },
          "uses": {
            "description": "Optional. Input only. Immutable. The number of times the token can be used. If this value is zero then no\nlimit is applied. Resuming a Live API session does not count as a use. If\nunspecified, the default is 1.",
            "x-google-immutable": true,
            "writeOnly": true,
            "format": "int32",
            "type": "integer"
          },
          "fieldMask": {
            "type": "string",
            "writeOnly": true,
            "format": "google-fieldmask",
            "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$",
            "x-google-immutable": true,
            "description": "Optional. Input only. Immutable. If field_mask is empty, and `bidi_generate_content_setup` is not present,\nthen the effective `BidiGenerateContentSetup` message is taken from the\nLive API connection.\n\nIf field_mask is empty, and `bidi_generate_content_setup` _is_ present,\nthen the effective `BidiGenerateContentSetup` message is taken entirely\nfrom `bidi_generate_content_setup` in this request. The setup message from\nthe Live API connection is ignored.\n\nIf field_mask is not empty, then the corresponding fields from\n`bidi_generate_content_setup` will overwrite the fields from the setup\nmessage in the Live API connection."
          },
          "name": {
            "x-google-identifier": true,
            "readOnly": true,
            "type": "string",
            "description": "Output only. Identifier. The token itself."
          }
        },
        "type": "object",
        "description": "A request to create an ephemeral authentication token."
      },
      "FunctionResponseBlob": {
        "type": "object",
        "description": "Raw media bytes for function response.\n\nText should not be sent as raw bytes, use the 'FunctionResponse.response'\nfield.",
        "properties": {
          "mimeType": {
            "description": "The IANA standard MIME type of the source data.\nExamples:\n  - image/png\n  - image/jpeg\nIf an unsupported MIME type is provided, an error will be returned. For a\ncomplete list of supported types, see [Supported file\nformats](https://ai.google.dev/gemini-api/docs/prompting_with_media#supported_file_formats).",
            "type": "string"
          },
          "data": {
            "description": "Raw bytes for media formats.",
            "format": "byte",
            "type": "string"
          }
        }
      },
      "TuningTask": {
        "required": [
          "trainingData"
        ],
        "type": "object",
        "properties": {
          "snapshots": {
            "type": "array",
            "readOnly": true,
            "items": {
              "$ref": "#/components/schemas/TuningSnapshot"
            },
            "description": "Output only. Metrics collected during tuning."
          },
          "completeTime": {
            "description": "Output only. The timestamp when tuning this model completed.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "trainingData": {
            "x-google-immutable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Dataset"
              }
            ],
            "description": "Required. Input only. Immutable. The model training data.",
            "writeOnly": true
          },
          "hyperparameters": {
            "description": "Immutable. Hyperparameters controlling the tuning process. If not provided, default\nvalues will be used.",
            "x-google-immutable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/Hyperparameters"
              }
            ]
          },
          "startTime": {
            "readOnly": true,
            "type": "string",
            "format": "date-time",
            "description": "Output only. The timestamp when tuning this model started."
          }
        },
        "description": "Tuning tasks that create tuned models."
      },
      "CreateEnvironmentRequest": {
        "properties": {
          "sources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Source"
            },
            "description": "Sources to be mounted into the environment."
          },
          "networkAllowlist": {
            "description": "Allow only specific domains.",
            "allOf": [
              {
                "$ref": "#/components/schemas/EnvironmentNetworkEgressAllowlist"
              }
            ]
          },
          "fromEnvironment": {
            "type": "string",
            "description": "Optional. The source environment to copy/fork from.\nFormat: `environments/{environment_id}` or `{environment_id}`.\nWhen specified, `sources` and `env` must be empty."
          },
          "networkMode": {
            "x-google-enum-descriptions": [
              "Default value. Unused.",
              "All network egress is blocked."
            ],
            "type": "string",
            "enum": [
              "NETWORK_MODE_UNSPECIFIED",
              "DISABLED"
            ],
            "description": "Network egress mode."
          }
        },
        "description": "Request for `CreateEnvironment`.",
        "type": "object"
      },
      "CountTextTokensResponse": {
        "type": "object",
        "description": "A response from `CountTextTokens`.\n\nIt returns the model's `token_count` for the `prompt`.",
        "properties": {
          "tokenCount": {
            "type": "integer",
            "description": "The number of tokens that the `model` tokenizes the `prompt` into.\n\nAlways non-negative.",
            "format": "int32"
          }
        }
      },
      "FunctionCall": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Optional. Unique identifier of the function call. If populated, the client to\nexecute the `function_call` and return the response with the matching `id`.",
            "type": "string"
          },
          "name": {
            "description": "Required. The name of the function to call.\nMust be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum\nlength of 128.",
            "type": "string"
          },
          "args": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "description": "Optional. The function parameters and values in JSON object format.",
            "type": "object"
          }
        },
        "description": "A predicted `FunctionCall` returned from the model that contains\na string representing the `FunctionDeclaration.name` with the\narguments and their values.",
        "required": [
          "name"
        ]
      },
      "WordInfo": {
        "properties": {
          "endOffset": {
            "format": "google-duration",
            "description": "Optional. End offset in time of the word relative to the start of the audio.",
            "type": "string"
          },
          "startOffset": {
            "type": "string",
            "description": "Optional. Start offset in time of the word relative to the start of the audio.",
            "format": "google-duration"
          },
          "word": {
            "description": "Required. Transcript of the word.",
            "type": "string"
          }
        },
        "required": [
          "word"
        ],
        "description": "Information about a single recognized word.",
        "type": "object"
      },
      "ServiceTier": {
        "x-google-enum-descriptions": [
          "Default service tier, which is standard.",
          "Standard service tier.",
          "Flex service tier.",
          "Priority service tier."
        ],
        "type": "string",
        "enum": [
          "unspecified",
          "standard",
          "flex",
          "priority"
        ]
      },
      "ListCachedContentsResponse": {
        "type": "object",
        "description": "Response with CachedContents list.",
        "properties": {
          "nextPageToken": {
            "description": "A token, which can be sent as `page_token` to retrieve the next page.\nIf this field is omitted, there are no subsequent pages.",
            "type": "string"
          },
          "cachedContents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CachedContent"
            },
            "description": "List of cached contents."
          }
        }
      },
      "EmbeddingUsageMetadata": {
        "type": "object",
        "description": "Metadata on the usage of the embedding request.",
        "properties": {
          "promptTokenCount": {
            "description": "Output only. Number of tokens in the prompt.",
            "format": "int32",
            "type": "integer",
            "readOnly": true
          },
          "promptTokenDetails": {
            "description": "Output only. List of modalities that were processed in the request input.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            },
            "readOnly": true
          }
        }
      },
      "Message": {
        "type": "object",
        "properties": {
          "citationMetadata": {
            "description": "Output only. Citation information for model-generated `content` in this `Message`.\n\nIf this `Message` was generated as output from the model, this field may be\npopulated with attribution information for any text included in the\n`content`. This field is used only on output.",
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/CitationMetadata"
              }
            ]
          },
          "author": {
            "type": "string",
            "description": "Optional. The author of this Message.\n\nThis serves as a key for tagging\nthe content of this Message when it is fed to the model as text.\n\nThe author can be any alphanumeric string."
          },
          "content": {
            "description": "Required. The text content of the structured `Message`.",
            "type": "string"
          }
        },
        "description": "The base unit of structured text.\n\nA `Message` includes an `author` and the `content` of\nthe `Message`.\n\nThe `author` is used to tag messages when they are fed to the\nmodel as text.",
        "required": [
          "content"
        ]
      },
      "InlinedResponse": {
        "properties": {
          "response": {
            "readOnly": true,
            "description": "Output only. The response to the request.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerateContentResponse"
              }
            ]
          },
          "error": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Status"
              }
            ],
            "readOnly": true,
            "description": "Output only. The error encountered while processing the request."
          },
          "metadata": {
            "additionalProperties": {
              "description": "Properties of the object."
            },
            "readOnly": true,
            "type": "object",
            "description": "Output only. The metadata associated with the request."
          }
        },
        "description": "The response to a single request in the batch.",
        "type": "object"
      },
      "V1mainTuningSnapshot": {
        "description": "Record for a single tuning step.",
        "properties": {
          "epoch": {
            "format": "int32",
            "readOnly": true,
            "description": "Output only. The epoch this step was part of.",
            "type": "integer"
          },
          "step": {
            "type": "integer",
            "description": "Output only. The tuning step.",
            "format": "int32",
            "readOnly": true
          },
          "computeTime": {
            "type": "string",
            "description": "Output only. The timestamp when this metric was computed.",
            "readOnly": true,
            "format": "date-time"
          },
          "meanLoss": {
            "description": "Output only. The mean loss of the training examples for this step.",
            "readOnly": true,
            "format": "float",
            "type": "number"
          }
        },
        "type": "object"
      },
      "Document": {
        "type": "object",
        "properties": {
          "sizeBytes": {
            "description": "Output only. The size of raw bytes ingested into the Document.",
            "type": "string",
            "format": "int64",
            "readOnly": true
          },
          "displayName": {
            "description": "Optional. The human-readable display name for the `Document`. The display name must\nbe no more than 512 characters in length, including spaces.\nExample: \"Semantic Retriever Documentation\"",
            "type": "string"
          },
          "createTime": {
            "description": "Output only. The Timestamp of when the `Document` was created.",
            "readOnly": true,
            "format": "date-time",
            "type": "string"
          },
          "state": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "STATE_UNSPECIFIED",
              "STATE_PENDING",
              "STATE_ACTIVE",
              "STATE_FAILED"
            ],
            "x-google-enum-descriptions": [
              "The default value. This value is used if the state is omitted.",
              "Some `Chunks` of the `Document` are being processed (embedding and vector\nstorage).",
              "All `Chunks` of the `Document` is processed and available for querying.",
              "Some `Chunks` of the `Document` failed processing."
            ],
            "description": "Output only. Current state of the `Document`."
          },
          "mimeType": {
            "readOnly": true,
            "description": "Output only. The mime type of the Document.",
            "type": "string"
          },
          "customMetadata": {
            "type": "array",
            "description": "Optional. User provided custom metadata stored as key-value pairs used for querying.\nA `Document` can have a maximum of 20 `CustomMetadata`.",
            "items": {
              "$ref": "#/components/schemas/CustomMetadata"
            }
          },
          "name": {
            "x-google-identifier": true,
            "x-google-immutable": true,
            "type": "string",
            "description": "Immutable. Identifier. The `Document` resource name. The ID (name excluding the\n\"fileSearchStores/*/documents/\" prefix) can contain up to 40 characters\nthat are lowercase alphanumeric or dashes (-). The ID cannot start or end\nwith a dash. If the name is empty on create, a unique name will be derived\nfrom `display_name` along with a 12 character random suffix. Example:\n`fileSearchStores/{file_search_store_id}/documents/my-awesome-doc-123a456b789c`"
          },
          "updateTime": {
            "readOnly": true,
            "format": "date-time",
            "type": "string",
            "description": "Output only. The Timestamp of when the `Document` was last updated."
          }
        },
        "description": "A `Document` is a collection of `Chunk`s."
      },
      "Maps": {
        "description": "A grounding chunk from Google Maps. A Maps chunk corresponds to a single\nplace.",
        "type": "object",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text description of the place answer."
          },
          "title": {
            "type": "string",
            "description": "Title of the place."
          },
          "placeAnswerSources": {
            "allOf": [
              {
                "$ref": "#/components/schemas/PlaceAnswerSources"
              }
            ],
            "description": "Sources that provide answers about the features of a given place in\nGoogle Maps."
          },
          "uri": {
            "description": "URI reference of the place.",
            "type": "string"
          },
          "placeId": {
            "description": "The ID of the place, in `places/{place_id}` format. A user can use this\nID to look up that place.",
            "type": "string"
          }
        }
      },
      "Example": {
        "description": "An input/output example used to instruct the Model.\n\nIt demonstrates how the model should respond or format its response.",
        "required": [
          "input",
          "output"
        ],
        "type": "object",
        "properties": {
          "input": {
            "description": "Required. An example of an input `Message` from the user.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Message"
              }
            ]
          },
          "output": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Message"
              }
            ],
            "description": "Required. An example of what the model should output given the input."
          }
        }
      },
      "GroundingPassage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier for the passage for attributing this passage in grounded\nanswers."
          },
          "content": {
            "description": "Content of the passage.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Content"
              }
            ]
          }
        },
        "description": "Passage included inline with a grounding configuration."
      },
      "ContentEmbedding": {
        "description": "A list of floats representing an embedding.",
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "format": "float",
              "type": "number"
            },
            "description": "The embedding values. This is for 3P users only and will not be populated\nfor 1P calls."
          },
          "shape": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "description": "This field stores the soft tokens tensor frame shape\n(e.g. [1, 1, 256, 2048])."
          }
        },
        "type": "object"
      },
      "CountTokensResponse": {
        "description": "A response from `CountTokens`.\n\nIt returns the model's `token_count` for the `prompt`.",
        "properties": {
          "cacheTokensDetails": {
            "type": "array",
            "readOnly": true,
            "description": "Output only. List of modalities that were processed in the cached content.",
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            }
          },
          "totalTokens": {
            "format": "int32",
            "type": "integer",
            "description": "The number of tokens that the `Model` tokenizes the `prompt` into. Always\nnon-negative."
          },
          "promptTokensDetails": {
            "readOnly": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModalityTokenCount"
            },
            "description": "Output only. List of modalities that were processed in the request input."
          },
          "cachedContentTokenCount": {
            "description": "Number of tokens in the cached part of the prompt (the cached content).",
            "format": "int32",
            "type": "integer"
          }
        },
        "type": "object"
      },
      "WhiteSpaceConfig": {
        "type": "object",
        "description": "Configuration for a white space chunking algorithm [white space delimited].",
        "properties": {
          "maxOverlapTokens": {
            "type": "integer",
            "format": "int32",
            "description": "Maximum number of overlapping tokens between two adjacent chunks."
          },
          "maxTokensPerChunk": {
            "description": "Maximum number of tokens per chunk.\nTokens are defined as words for this chunking algorithm.\nNote: we are defining tokens as words split by whitespace as opposed to\nthe output of a tokenizer. The context window of the latest gemini\nembedding model as of 2025-04-17 is currently 8192 tokens. We assume that\nthe average word is 5 characters. Therefore, we set the upper limit to\n2**9, which is 512 words, or 2560 tokens, assuming worst case a\ncharacter per token. This is a conservative estimate meant to prevent\ncontext window overflow.",
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "LogprobsResultCandidate": {
        "properties": {
          "token": {
            "description": "The candidate’s token string value.",
            "type": "string"
          },
          "logProbability": {
            "type": "number",
            "description": "The candidate's log probability.",
            "format": "float"
          },
          "tokenId": {
            "type": "integer",
            "format": "int32",
            "description": "The candidate’s token id value."
          }
        },
        "type": "object",
        "description": "Candidate for the logprobs token and score."
      },
      "AutomaticActivityDetection": {
        "description": "Configures automatic detection of activity.",
        "properties": {
          "endOfSpeechSensitivity": {
            "type": "string",
            "enum": [
              "END_SENSITIVITY_UNSPECIFIED",
              "END_SENSITIVITY_HIGH",
              "END_SENSITIVITY_LOW"
            ],
            "x-google-enum-descriptions": [
              "The default is END_SENSITIVITY_HIGH.",
              "Automatic detection ends speech more often.",
              "Automatic detection ends speech less often."
            ],
            "description": "Optional. Determines how likely detected speech is ended."
          },
          "startOfSpeechSensitivity": {
            "type": "string",
            "enum": [
              "START_SENSITIVITY_UNSPECIFIED",
              "START_SENSITIVITY_HIGH",
              "START_SENSITIVITY_LOW"
            ],
            "description": "Optional. Determines how likely speech is to be detected.",
            "x-google-enum-descriptions": [
              "The default is START_SENSITIVITY_HIGH.",
              "Automatic detection will detect the start of speech more often.",
              "Automatic detection will detect the start of speech less often."
            ]
          },
          "prefixPaddingMs": {
            "format": "int32",
            "description": "Optional. The required duration of detected speech before start-of-speech is\ncommitted. The lower this value, the more sensitive the start-of-speech\ndetection is and shorter speech can be recognized. However, this also\nincreases the probability of false positives.",
            "type": "integer"
          },
          "silenceDurationMs": {
            "description": "Optional. The required duration of detected non-speech (e.g. silence) before\nend-of-speech is committed. The larger this value, the longer speech gaps\ncan be without interrupting the user's activity but this will increase\nthe model's latency.",
            "type": "integer",
            "format": "int32"
          },
          "disabled": {
            "type": "boolean",
            "description": "Optional. If enabled (the default), detected voice and text input count as\nactivity. If disabled, the client must send activity signals."
          }
        },
        "type": "object"
      },
      "FileSearchStore": {
        "description": "A `FileSearchStore` is a collection of `Document`s.",
        "properties": {
          "pendingDocumentsCount": {
            "readOnly": true,
            "format": "int64",
            "type": "string",
            "description": "Output only. The number of documents in the `FileSearchStore` that are being processed."
          },
          "failedDocumentsCount": {
            "format": "int64",
            "readOnly": true,
            "description": "Output only. The number of documents in the `FileSearchStore` that have failed\nprocessing.",
            "type": "string"
          },
          "createTime": {
            "format": "date-time",
            "description": "Output only. The Timestamp of when the `FileSearchStore` was created.",
            "readOnly": true,
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "description": "Optional. The human-readable display name for the `FileSearchStore`. The display name\nmust be no more than 512 characters in length, including spaces. Example:\n\"Docs on Semantic Retriever\""
          },
          "activeDocumentsCount": {
            "type": "string",
            "readOnly": true,
            "description": "Output only. The number of documents in the `FileSearchStore` that are active and ready\nfor retrieval.",
            "format": "int64"
          },
          "sizeBytes": {
            "format": "int64",
            "description": "Output only. The size of raw bytes ingested into the `FileSearchStore`. This is the\ntotal size of all the documents in the `FileSearchStore`.",
            "readOnly": true,
            "type": "string"
          },
          "embeddingModel": {
            "type": "string",
            "description": "Optional. The embedding model to use for the `FileSearchStore`.\nThe model's resource name. This serves as an ID for the Model to use.\nFormat: `models/{model}`.\nIf not specified, the default embedding model will be used."
          },
          "updateTime": {
            "description": "Output only. The Timestamp of when the `FileSearchStore` was last updated.",
            "format": "date-time",
            "readOnly": true,
            "type": "string"
          },
          "name": {
            "type": "string",
            "x-google-immutable": true,
            "x-google-identifier": true,
            "readOnly": true,
            "description": "Output only. Immutable. Identifier. The `FileSearchStore` resource name. It is an ID (name excluding the\n\"fileSearchStores/\" prefix) that can contain up to 40 characters that are\nlowercase alphanumeric or dashes\n(-). It is output only. The unique name will be derived from\n`display_name` along with a 12 character random suffix. Example:\n`fileSearchStores/my-awesome-file-search-store-123a456b789c`\nIf `display_name` is not provided, the name will be randomly generated."
          }
        },
        "type": "object"
      },
      "BatchGenerateContentRequest": {
        "required": [
          "batch"
        ],
        "description": "Request for a `BatchGenerateContent` operation.",
        "type": "object",
        "properties": {
          "batch": {
            "description": "Required. The batch to create.",
            "allOf": [
              {
                "$ref": "#/components/schemas/GenerateContentBatch"
              }
            ]
          }
        }
      },
      "HttpBody": {
        "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n    message GetResourceRequest {\n      // A unique request id.\n      string request_id = 1;\n\n      // The raw HTTP body is bound to this field.\n      google.api.HttpBody http_body = 2;\n\n    }\n\n    service ResourceService {\n      rpc GetResource(GetResourceRequest)\n        returns (google.api.HttpBody);\n      rpc UpdateResource(google.api.HttpBody)\n        returns (google.protobuf.Empty);\n\n    }\n\nExample with streaming methods:\n\n    service CaldavService {\n      rpc GetCalendar(stream google.api.HttpBody)\n        returns (stream google.api.HttpBody);\n      rpc UpdateCalendar(stream google.api.HttpBody)\n        returns (stream google.api.HttpBody);\n\n    }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged.",
        "type": "object",
        "properties": {
          "contentType": {
            "description": "The HTTP Content-Type header value specifying the content type of the body.",
            "type": "string"
          },
          "extensions": {
            "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs.",
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "description": "Properties of the object. Contains field @type with type URL."
              }
            }
          },
          "data": {
            "type": "string",
            "format": "byte",
            "description": "The HTTP request/response body as raw binary."
          }
        }
      },
      "PredictLongRunningRequest": {
        "required": [
          "instances"
        ],
        "properties": {
          "labels": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Optional. Labels with user-defined metadata for the request.\n\nOptional. Labels must follow standard unified Cloud label requirements:\n- Label keys must start with a letter.\n- Label keys and values can be no longer than 63 characters (Unicode\n  codepoints) and can only contain lowercase letters, numeric characters,\n  underscores, and dashes.\n- International characters are allowed.\n\nUsage:\n-  Safety identifiers from aggregators: Use the key `safety_identifier`\n   (e.g. `{\"safety_identifier\": \"user_session_123\"}`)"
          },
          "instances": {
            "type": "array",
            "description": "Required. The instances that are the input to the prediction call.",
            "items": {}
          },
          "parameters": {
            "description": "Optional. The parameters that govern the prediction call."
          }
        },
        "type": "object",
        "description": "Request message for [PredictionService.PredictLongRunning]."
      },
      "Interval": {
        "type": "object",
        "properties": {
          "startTime": {
            "type": "string",
            "format": "date-time",
            "description": "Optional. Inclusive start of the interval.\n\nIf specified, a Timestamp matching this interval will have to be the same\nor after the start."
          },
          "endTime": {
            "description": "Optional. Exclusive end of the interval.\n\nIf specified, a Timestamp matching this interval will have to be before the\nend.",
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a\nTimestamp end (exclusive).\n\nThe start must be less than or equal to the end.\nWhen the start equals the end, the interval is empty (matches no time).\nWhen both start and end are unspecified, the interval matches any time."
      },
      "PredictLongRunningMetadata": {
        "description": "Metadata for PredictLongRunning long running operations.",
        "type": "object"
      },
      "GenerateAnswerRequest": {
        "description": "Request to generate a grounded answer from the `Model`.",
        "required": [
          "contents",
          "answerStyle"
        ],
        "type": "object",
        "properties": {
          "contents": {
            "type": "array",
            "description": "Required. The content of the current conversation with the `Model`. For single-turn\nqueries, this is a single question to answer. For multi-turn queries, this\nis a repeated field that contains conversation history and the last\n`Content` in the list containing the question.\n\nNote: `GenerateAnswer` only supports queries in English.",
            "items": {
              "$ref": "#/components/schemas/Content"
            }
          },
          "safetySettings": {
            "type": "array",
            "description": "Optional. A list of unique `SafetySetting` instances for blocking unsafe content.\n\nThis will be enforced on the `GenerateAnswerRequest.contents` and\n`GenerateAnswerResponse.candidate`. There should not be more than one\nsetting for each `SafetyCategory` type. The API will block any contents and\nresponses that fail to meet the thresholds set by these settings. This list\noverrides the default settings for each `SafetyCategory` specified in the\nsafety_settings. If there is no `SafetySetting` for a given\n`SafetyCategory` provided in the list, the API will use the default safety\nsetting for that category. Harm categories HARM_CATEGORY_HATE_SPEECH,\nHARM_CATEGORY_SEXUALLY_EXPLICIT, HARM_CATEGORY_DANGEROUS_CONTENT,\nHARM_CATEGORY_HARASSMENT are supported.\nRefer to the\n[guide](https://ai.google.dev/gemini-api/docs/safety-settings)\nfor detailed information on available safety settings. Also refer to the\n[Safety guidance](https://ai.google.dev/gemini-api/docs/safety-guidance) to\nlearn how to incorporate safety considerations in your AI applications.",
            "items": {
              "$ref": "#/components/schemas/SafetySetting"
            }
          },
          "answerStyle": {
            "description": "Required. Style in which answers should be returned.",
            "x-google-enum-descriptions": [
              "Unspecified answer style.",
              "Succinct but abstract style.",
              "Very brief and extractive style.",
              "Verbose style including extra details. The response may be formatted as a\nsentence, paragraph, multiple paragraphs, or bullet points, etc."
            ],
            "type": "string",
            "enum": [
              "ANSWER_STYLE_UNSPECIFIED",
              "ABSTRACTIVE",
              "EXTRACTIVE",
              "VERBOSE"
            ]
          },
          "inlinePassages": {
            "allOf": [
              {
                "$ref": "#/components/schemas/GroundingPassages"
              }
            ],
            "description": "Passages provided inline with the request."
          },
          "temperature": {
            "format": "float",
            "type": "number",
            "description": "Optional. Controls the randomness of the output.\n\nValues can range from [0.0,1.0], inclusive. A value closer to 1.0 will\nproduce responses that are more varied and creative, while a value closer\nto 0.0 will typically result in more straightforward responses from the\nmodel. A low temperature (~0.2) is usually recommended for\nAttributed-Question-Answering use cases."
          },
          "semanticRetriever": {
            "description": "Content retrieved from resources created via the Semantic Retriever\nAPI.",
            "allOf": [
              {
                "$ref": "#/components/schemas/SemanticRetrieverConfig"
              }
            ]
          }
        }
      },
      "UrlContext": {
        "description": "Tool to support URL context retrieval.",
        "type": "object"
      },
      "Source": {
        "type": "object",
        "description": "A source to be mounted into the environment.",
        "properties": {
          "source": {
            "type": "string",
            "description": "The source of the environment.\nFor Cloud Storage, this is the Cloud Storage path.\nFor GitHub, this is the GitHub path."
          },
          "content": {
            "description": "The inline content if `type` is `INLINE`.",
            "type": "string"
          },
          "encoding": {
            "description": "Optional encoding for inline content (e.g. `base64`).",
            "type": "string"
          },
          "type": {
            "x-google-enum-descriptions": [
              "",
              "A Cloud Storage bucket.",
              "Inline content.",
              "A generic repository. The protocol prefix in the source URL\nidentifies the provider (e.g., github://, gcs://)."
            ],
            "type": "string",
            "enum": [
              "TYPE_UNSPECIFIED",
              "GCS",
              "INLINE",
              "REPOSITORY"
            ]
          },
          "target": {
            "type": "string",
            "description": "Where the source should appear in the environment."
          }
        }
      },
      "DownloadParameters": {
        "description": "Parameters specific to media downloads.",
        "properties": {
          "ignoreRange": {
            "description": "Determining whether or not Apiary should skip the inclusion\nof any Content-Range header on its response to Scotty.",
            "type": "boolean"
          },
          "allowGzipCompression": {
            "description": "A boolean to be returned in the response to Scotty. Allows/disallows gzip\nencoding of the payload content when the server thinks it's\nadvantageous (hence, does not guarantee compression) which allows\nScotty to GZip the response to the client.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "LanguageAuto": {
        "type": "object",
        "deprecated": true,
        "description": "Indicates the language of the audio should be automatically detected."
      }
    },
    "securitySchemes": {
      "bearer_auth": {
        "scheme": "bearer",
        "type": "http",
        "description": "Http bearer authentication."
      },
      "google_oauth_code": {
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth",
            "tokenUrl": "https://oauth2.googleapis.com/token",
            "scopes": {
              "https://www.googleapis.com/auth/devstorage.read_only": "View your data in Google Cloud Storage"
            },
            "refreshUrl": "https://oauth2.googleapis.com/token"
          }
        },
        "type": "oauth2",
        "description": "Google Oauth 2.0 authorizationCode authentication flow."
      },
      "google_oauth_implicit": {
        "flows": {
          "implicit": {
            "scopes": {
              "https://www.googleapis.com/auth/devstorage.read_only": "View your data in Google Cloud Storage"
            },
            "authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth"
          }
        },
        "type": "oauth2",
        "description": "Google Oauth 2.0 implicit authentication flow."
      }
    },
    "parameters": {
      "_.xgafv": {
        "in": "query",
        "description": "V1 error format.",
        "schema": {
          "x-google-enum-descriptions": [
            "v1 error format",
            "v2 error format"
          ],
          "enum": [
            "1",
            "2"
          ],
          "type": "string"
        },
        "name": "$.xgafv"
      },
      "alt": {
        "schema": {
          "default": "json",
          "enum": [
            "json",
            "media",
            "proto"
          ],
          "type": "string",
          "x-google-enum-descriptions": [
            "Responses with Content-Type of application/json",
            "Media download with context-dependent Content-Type",
            "Responses with Content-Type of application/x-protobuf"
          ]
        },
        "description": "Data format for response.",
        "name": "$alt",
        "in": "query"
      },
      "callback": {
        "name": "$callback",
        "schema": {
          "type": "string"
        },
        "description": "JSONP",
        "in": "query"
      },
      "prettyPrint": {
        "name": "$prettyPrint",
        "in": "query",
        "description": "Returns response with indentations and line breaks.",
        "schema": {
          "type": "boolean",
          "default": "true"
        }
      }
    }
  },
  "paths": {
    "/v1beta/auth_tokens": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthToken"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [],
        "requestBody": {
          "description": "Required. The token to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthToken"
              }
            }
          }
        },
        "description": "Creates a token that can be used to constrain the behavior of a\nBidiGenerateContent session.",
        "tags": [
          "generativelanguage"
        ],
        "operationId": "CreateToken",
        "security": []
      }
    },
    "/v1beta/environments": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpBody"
                }
              }
            }
          }
        },
        "parameters": [],
        "operationId": "CreateEnvironmentHttp",
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "requestBody": {
          "description": "Required. The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HttpBody"
              }
            }
          }
        },
        "description": "Creates an environment."
      },
      "get": {
        "description": "Lists environments.",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "in": "query",
            "description": "Optional. Maximum number of environments to return.\nIf unspecified, defaults to 50. Maximum is 1000.",
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "name": "pageToken",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Optional. Pagination token."
          }
        ],
        "operationId": "ListEnvironmentsHttp",
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpBody"
                }
              }
            },
            "description": "Successful operation"
          }
        }
      }
    },
    "/v1beta/fileSearchStores/{fileSearchStore}/operations/{operation}": {
      "get": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "fileSearchStore"
          },
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "name": "operation",
            "required": true
          }
        ],
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
        "x-google-operation-name": "GetOperation",
        "operationId": "GetOperationByFileSearchStoreAndOperation",
        "security": [],
        "tags": [
          "generativelanguage"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/generatedFiles/{generatedFile}/operations/{operation}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "operationId": "GetOperationByGeneratedFileAndOperation",
        "parameters": [
          {
            "name": "generatedFile",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "name": "operation",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "in": "path"
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "security": [],
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
        "x-google-operation-name": "GetOperation",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/models/{model}:predict": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "operationId": "Predict",
        "parameters": [
          {
            "required": true,
            "name": "model",
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PredictResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PredictRequest"
              }
            }
          },
          "description": "The request body."
        },
        "description": "Performs a prediction request.",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/corpora/{corpus}/permissions/{permission}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "delete": {
        "description": "Deletes the permission.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "name": "corpus"
          },
          {
            "name": "permission",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "DeletePermissionByCorpusAndPermission",
        "x-google-operation-name": "DeletePermission",
        "security": []
      },
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "description": "Gets information about a specific Permission.",
        "security": [],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            }
          }
        },
        "x-google-operation-name": "GetPermission",
        "operationId": "GetPermissionByCorpusAndPermission",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "corpus"
          },
          {
            "in": "path",
            "name": "permission",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ]
      },
      "patch": {
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "name": "corpus",
            "in": "path"
          },
          {
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "permission",
            "in": "path"
          },
          {
            "name": "updateMask",
            "description": "Required. The list of fields to update. Accepted ones:\n - role (`Permission.role` field)",
            "schema": {
              "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$",
              "type": "string",
              "format": "google-fieldmask"
            },
            "required": true,
            "in": "query"
          }
        ],
        "operationId": "UpdatePermissionByCorpusAndPermission",
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "requestBody": {
          "description": "Required. The permission to update.\n\nThe permission's `name` field is used to identify the permission to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Permission"
              }
            }
          }
        },
        "description": "Updates the permission.",
        "x-google-operation-name": "UpdatePermission"
      }
    },
    "/v1beta/corpora/{corpus}/permissions": {
      "post": {
        "security": [],
        "x-google-operation-name": "CreatePermission",
        "operationId": "CreatePermissionByCorpus",
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            }
          }
        },
        "description": "Create a permission to a specific resource.",
        "parameters": [
          {
            "name": "corpus",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Required. The permission to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Permission"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "description": "Lists permissions for the specific resource.",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "x-google-operation-name": "ListPermissions",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPermissionsResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "in": "path",
            "name": "corpus",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "description": "Optional. The maximum number of `Permission`s to return (per page).\nThe service may return fewer permissions.\n\nIf unspecified, at most 10 permissions will be returned.\nThis method returns at most 1000 permissions per page, even if you pass\nlarger page_size.",
            "in": "query",
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "name": "pageSize"
          },
          {
            "name": "pageToken",
            "description": "Optional. A page token, received from a previous `ListPermissions` call.\n\nProvide the `page_token` returned by one request as an argument to the\nnext request to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListPermissions`\nmust match the call that provided the page token.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          }
        ],
        "operationId": "ListPermissionsByCorpus"
      }
    },
    "/v1beta/files:register": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "description": "Registers a Google Cloud Storage files with FileService. The user is\nexpected to provide Google Cloud Storage URIs and will receive a File\nresource for each URI in return. Note that the files are not copied, just\nregistered with File API. If one file fails to register, the whole request\nfails.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterFilesRequest"
              }
            }
          },
          "description": "The request body."
        },
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RegisterFilesResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [],
        "operationId": "RegisterFiles"
      }
    },
    "/v1beta/models/{model}:batchEmbedText": {
      "post": {
        "operationId": "BatchEmbedText",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "name": "model",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true
          }
        ],
        "description": "Generates multiple embeddings from the model given input text in a\nsynchronous call.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchEmbedTextResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchEmbedTextRequest"
              }
            }
          }
        },
        "security": []
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/tunedModels": {
      "post": {
        "parameters": [
          {
            "description": "Optional. The unique id for the tuned model if specified.\nThis value should be up to 40 characters, the first character must be a\nletter, the last could be a letter or a number. The id must match the\nregular expression: `[a-z]([a-z0-9-]{0,38}[a-z0-9])?`.",
            "name": "tunedModelId",
            "schema": {
              "type": "string"
            },
            "in": "query"
          }
        ],
        "security": [],
        "requestBody": {
          "description": "Required. The tuned model to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TunedModel"
              }
            }
          }
        },
        "description": "Creates a tuned model.\nCheck intermediate tuning progress (if any) through the\n[google.longrunning.Operations] service.\n\nAccess status and results through the Operations service.\nExample:\n  GET /v1/tunedModels/az2mb0bpw6i/operations/000-111-222",
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateTunedModelOperation"
                }
              }
            }
          }
        },
        "x-google-lro": "true",
        "operationId": "CreateTunedModel"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "operationId": "ListTunedModels",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListTunedModelsResponse"
                }
              }
            }
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "description": "Lists created tuned models.",
        "parameters": [
          {
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional. The maximum number of `TunedModels` to return (per page).\nThe service may return fewer tuned models.\n\nIf unspecified, at most 10 tuned models will be returned.\nThis method returns at most 1000 models per page, even if you pass a larger\npage_size.",
            "name": "pageSize"
          },
          {
            "name": "pageToken",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Optional. A page token, received from a previous `ListTunedModels` call.\n\nProvide the `page_token` returned by one request as an argument to the next\nrequest to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListTunedModels`\nmust match the call that provided the page token."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filter",
            "description": "Optional. A filter is a full text search over the tuned model's description and\ndisplay name. By default, results will not include tuned models shared\nwith everyone.\n\nAdditional operators:\n  - owner:me\n  - writers:me\n  - readers:me\n  - readers:everyone\n\nExamples:\n  \"owner:me\" returns all tuned models to which caller has owner role\n  \"readers:me\" returns all tuned models to which caller has reader role\n  \"readers:everyone\" returns all tuned models that are shared with everyone"
          }
        ],
        "security": []
      }
    },
    "/v1beta/models/{model}": {
      "get": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model"
                }
              }
            }
          }
        },
        "description": "Gets information about a specific `Model` such as its version number, token\nlimits,\n[parameters](https://ai.google.dev/gemini-api/docs/models/generative-models#model-parameters)\nand other metadata. Refer to the [Gemini models\nguide](https://ai.google.dev/gemini-api/docs/models/gemini) for detailed\nmodel information.",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "name": "model",
            "required": true,
            "schema": {
              "type": "string"
            },
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "operationId": "GetModel"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/tunedModels/{tunedModel}/permissions": {
      "get": {
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "operationId": "ListPermissions",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPermissionsResponse"
                }
              }
            }
          }
        },
        "description": "Lists permissions for the specific resource.",
        "parameters": [
          {
            "in": "path",
            "required": true,
            "name": "tunedModel",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "description": "Optional. The maximum number of `Permission`s to return (per page).\nThe service may return fewer permissions.\n\nIf unspecified, at most 10 permissions will be returned.\nThis method returns at most 1000 permissions per page, even if you pass\nlarger page_size.",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "in": "query"
          },
          {
            "schema": {
              "type": "string"
            },
            "description": "Optional. A page token, received from a previous `ListPermissions` call.\n\nProvide the `page_token` returned by one request as an argument to the\nnext request to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListPermissions`\nmust match the call that provided the page token.",
            "in": "query",
            "name": "pageToken"
          }
        ]
      },
      "post": {
        "description": "Create a permission to a specific resource.",
        "tags": [
          "generativelanguage"
        ],
        "requestBody": {
          "description": "Required. The permission to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Permission"
              }
            }
          }
        },
        "security": [],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            }
          }
        },
        "operationId": "CreatePermission",
        "parameters": [
          {
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "tunedModel",
            "required": true
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/batches/{generateContentBatch}:updateEmbedContentBatch": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "patch": {
        "tags": [
          "generativelanguage"
        ],
        "operationId": "UpdateEmbedContentBatch",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmbedContentBatch"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Updates a batch of EmbedContent requests for batch processing.",
        "requestBody": {
          "description": "Required. The batch to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmbedContentBatch"
              }
            }
          }
        },
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "generateContentBatch",
            "required": true,
            "schema": {
              "type": "string"
            },
            "in": "path"
          },
          {
            "description": "Optional. The list of fields to update.",
            "name": "updateMask",
            "in": "query",
            "schema": {
              "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$",
              "type": "string",
              "format": "google-fieldmask"
            }
          }
        ],
        "security": []
      }
    },
    "/v1beta/corpora/{corpus}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "operationId": "GetCorpus",
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Corpus"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Gets information about a specific `Corpus`.",
        "parameters": [
          {
            "in": "path",
            "required": true,
            "name": "corpus",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "delete": {
        "parameters": [
          {
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "corpus",
            "in": "path"
          },
          {
            "in": "query",
            "name": "force",
            "schema": {
              "type": "boolean"
            },
            "description": "Optional. If set to true, any `Document`s and objects related to this `Corpus` will\nalso be deleted.\n\nIf false (the default), a `FAILED_PRECONDITION` error will be returned if\n`Corpus` contains any `Document`s."
          }
        ],
        "operationId": "DeleteCorpus",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "description": "Deletes a `Corpus`."
      }
    },
    "/v1beta/tunedModels/{tunedModel}/permissions/{permission}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "patch": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "tunedModel",
            "schema": {
              "type": "string"
            },
            "in": "path"
          },
          {
            "in": "path",
            "name": "permission",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "schema": {
              "type": "string",
              "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$",
              "format": "google-fieldmask"
            },
            "in": "query",
            "name": "updateMask",
            "description": "Required. The list of fields to update. Accepted ones:\n - role (`Permission.role` field)",
            "required": true
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "requestBody": {
          "description": "Required. The permission to update.\n\nThe permission's `name` field is used to identify the permission to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Permission"
              }
            }
          }
        },
        "description": "Updates the permission.",
        "security": [],
        "operationId": "UpdatePermission"
      },
      "get": {
        "parameters": [
          {
            "name": "tunedModel",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true
          },
          {
            "required": true,
            "name": "permission",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "description": "Gets information about a specific Permission.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Permission"
                }
              }
            }
          }
        },
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "operationId": "GetPermission"
      },
      "delete": {
        "description": "Deletes the permission.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "DeletePermission",
        "parameters": [
          {
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "tunedModel"
          },
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "name": "permission",
            "in": "path",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "security": []
      }
    },
    "/v1beta/models/{model}:generateAnswer": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "parameters": [
          {
            "name": "model",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true
          }
        ],
        "operationId": "GenerateAnswer",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateAnswerResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "security": [],
        "description": "Generates a grounded answer from the model given an input\n`GenerateAnswerRequest`.",
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateAnswerRequest"
              }
            }
          }
        },
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/tunedModels/{tunedModel}/operations/{operation}": {
      "get": {
        "operationId": "GetOperation",
        "parameters": [
          {
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "name": "tunedModel",
            "in": "path"
          },
          {
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "name": "operation",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice."
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/generatedFiles": {
      "get": {
        "parameters": [
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional. Maximum number of `GeneratedFile`s to return per page.\nIf unspecified, defaults to 10. Maximum `page_size` is 50."
          },
          {
            "in": "query",
            "description": "Optional. A page token from a previous `ListGeneratedFiles` call.",
            "name": "pageToken",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "ListGeneratedFiles",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListGeneratedFilesResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "description": "Lists the generated files owned by the requesting project."
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/generatedFiles/{generatedFile}": {
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "operationId": "GetGeneratedFile",
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "description": "Gets a generated file. When calling this method via REST, only the metadata\nof the generated file is returned. To retrieve the file content via REST,\nadd alt=media as a query parameter.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneratedFile"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "name": "generatedFile",
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}:generateMessage": {
      "post": {
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateMessageRequest"
              }
            }
          }
        },
        "description": "Generates a response from the model given an input `MessagePrompt`.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "model"
          }
        ],
        "security": [],
        "operationId": "GenerateMessage",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateMessageResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/batches": {
      "get": {
        "operationId": "ListOperationsBy",
        "x-google-operation-name": "ListOperations",
        "security": [],
        "parameters": [
          {
            "description": "The standard list filter.",
            "in": "query",
            "name": "filter",
            "schema": {
              "type": "string"
            }
          },
          {
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "name": "pageSize",
            "description": "The standard list page size.",
            "in": "query"
          },
          {
            "name": "pageToken",
            "description": "The standard list page token.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "returnPartialSuccess",
            "description": "When set to `true`, operations that are reachable are returned as normal,\nand those that are unreachable are returned in the\nListOperationsResponse.unreachable\nfield.\n\nThis can only be `true` when reading across collections. For example, when\n`parent` is set to `\"projects/example/locations/-\"`.\n\nThis field is not supported by default and will result in an\n`UNIMPLEMENTED` error if set unless explicitly documented otherwise in\nservice or product specific documentation."
          }
        ],
        "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.",
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListOperationsResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/fileSearchStores/{fileSearchStore}/documents": {
      "get": {
        "security": [],
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "required": true,
            "name": "fileSearchStore",
            "schema": {
              "type": "string"
            }
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "name": "pageSize",
            "in": "query",
            "description": "Optional. The maximum number of `Document`s to return (per page).\nThe service may return fewer `Document`s.\n\nIf unspecified, at most 10 `Document`s will be returned.\nThe maximum size limit is 20 `Document`s per page."
          },
          {
            "name": "pageToken",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "description": "Optional. A page token, received from a previous `ListDocuments` call.\n\nProvide the `next_page_token` returned in the response as an argument to\nthe next request to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListDocuments`\nmust match the call that provided the page token."
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListDocumentsResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Lists all `Document`s in a `Corpus`.",
        "tags": [
          "generativelanguage"
        ],
        "operationId": "ListDocuments"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/environments:list": {
      "get": {
        "description": "Lists environments.",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "name": "pageSize",
            "description": "Optional. Maximum number of environments to return.\nIf unspecified, defaults to 50. Maximum is 1000.",
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "in": "query"
          },
          {
            "description": "Optional. Pagination token.",
            "name": "pageToken",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "operationId": "ListEnvironments",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListEnvironmentsResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/tunedModels/{tunedModel}": {
      "patch": {
        "parameters": [
          {
            "name": "tunedModel",
            "required": true,
            "schema": {
              "type": "string"
            },
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "schema": {
              "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$",
              "format": "google-fieldmask",
              "type": "string"
            },
            "in": "query",
            "name": "updateMask",
            "description": "Optional. The list of fields to update."
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TunedModel"
                }
              }
            }
          }
        },
        "description": "Updates a tuned model.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TunedModel"
              }
            }
          },
          "description": "Required. The tuned model to update."
        },
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "operationId": "UpdateTunedModel"
      },
      "get": {
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "operationId": "GetTunedModel",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TunedModel"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "name": "tunedModel",
            "in": "path",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "description": "Gets information about a specific TunedModel."
      },
      "delete": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "operationId": "DeleteTunedModel",
        "security": [],
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "name": "tunedModel"
          }
        ],
        "description": "Deletes a tuned model."
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/environments/{id}:delete": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "delete": {
        "security": [],
        "description": "Deletes an environment.",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "name": "id",
            "required": true,
            "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.",
            "in": "path"
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "DeleteEnvironment"
      }
    },
    "/v1beta/batches/{generateContentBatch}:cancel": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "description": "Starts asynchronous cancellation on a long-running operation.  The server\nmakes a best effort to cancel the operation, but success is not\nguaranteed.  If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.  Clients can use\nOperations.GetOperation or\nother methods to check whether the cancellation succeeded or whether the\noperation completed despite cancellation. On successful cancellation,\nthe operation is not deleted; instead, it becomes an operation with\nan Operation.error value with a google.rpc.Status.code of `1`,\ncorresponding to `Code.CANCELLED`.",
        "parameters": [
          {
            "name": "generateContentBatch",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "required": true
          }
        ],
        "operationId": "CancelOperation"
      }
    },
    "/v1beta/corpora/{corpus}/operations/{operation}": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "x-google-operation-name": "GetOperation",
        "tags": [
          "generativelanguage"
        ],
        "operationId": "GetOperationByCorpusAndOperation",
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "name": "corpus",
            "schema": {
              "type": "string"
            },
            "in": "path"
          },
          {
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "name": "operation"
          }
        ],
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v1beta/models/{model}:predictLongRunning": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "name": "model",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PredictLongRunningRequest"
              }
            }
          }
        },
        "description": "Same as Predict but returns an LRO.",
        "x-google-lro": "true",
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PredictLongRunningOperation"
                }
              }
            }
          }
        },
        "operationId": "PredictLongRunning",
        "security": []
      }
    },
    "/v1beta/environments:create": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "security": [],
        "operationId": "CreateEnvironment",
        "tags": [
          "generativelanguage"
        ],
        "description": "Creates an environment.",
        "parameters": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateEnvironmentRequest"
              }
            }
          },
          "description": "The request body."
        }
      }
    },
    "/v1beta/tunedModels/{tunedModel}/operations": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.",
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListOperationsResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "name": "tunedModel",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "description": "The standard list filter.",
            "name": "filter",
            "schema": {
              "type": "string"
            },
            "in": "query"
          },
          {
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "in": "query",
            "description": "The standard list page size.",
            "name": "pageSize"
          },
          {
            "in": "query",
            "name": "pageToken",
            "description": "The standard list page token.",
            "schema": {
              "type": "string"
            }
          },
          {
            "schema": {
              "type": "boolean"
            },
            "name": "returnPartialSuccess",
            "description": "When set to `true`, operations that are reachable are returned as normal,\nand those that are unreachable are returned in the\nListOperationsResponse.unreachable\nfield.\n\nThis can only be `true` when reading across collections. For example, when\n`parent` is set to `\"projects/example/locations/-\"`.\n\nThis field is not supported by default and will result in an\n`UNIMPLEMENTED` error if set unless explicitly documented otherwise in\nservice or product specific documentation.",
            "in": "query"
          }
        ],
        "operationId": "ListOperations"
      }
    },
    "/v1beta/environments/{environment}/files/{path=**}": {
      "get": {
        "security": [],
        "operationId": "GetEnvironmentFilesHttp",
        "tags": [
          "generativelanguage"
        ],
        "description": "Retrieves file metadata or directory contents from an environment's\nsnapshot. To download file contents directly, pass ?alt=media or use the\nfiles.download helper.",
        "parameters": [
          {
            "in": "path",
            "name": "environment",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "name": "path=**",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Optional. If true and the path is a directory, recursively lists all files\nand subdirectories. Defaults to false (immediate children only).",
            "in": "query",
            "name": "recursive",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "in": "query",
            "description": "Optional. Maximum number of entries to return per page (for directory\nlisting). If unspecified, defaults to 100. Maximum is 1000.\nNOLINT",
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "name": "page_size"
          },
          {
            "in": "query",
            "description": "Optional. Pagination token for directory listing.\nNOLINT",
            "schema": {
              "type": "string"
            },
            "name": "page_token"
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEnvironmentFilesResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "put": {
        "operationId": "UploadEnvironmentFileHttp",
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true,
            "name": "environment"
          },
          {
            "schema": {
              "type": "string"
            },
            "name": "path=**",
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true
          }
        ],
        "security": [],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadEnvironmentFileResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadEnvironmentFileRequest"
              }
            }
          },
          "description": "The request body."
        },
        "description": "Uploads (creates or updates) a file in an environment's workspace.",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/models/{model}:countTextTokens": {
      "post": {
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CountTextTokensRequest"
              }
            }
          }
        },
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountTextTokensResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "required": true,
            "name": "model",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "description": "Runs a model's tokenizer on a text and returns the token count.",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "operationId": "CountTextTokens"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/cachedContents": {
      "post": {
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "description": "Creates CachedContent resource.",
        "requestBody": {
          "description": "Required. The cached content to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CachedContent"
              }
            }
          }
        },
        "parameters": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CachedContent"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "CreateCachedContent"
      },
      "get": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCachedContentsResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Optional. The maximum number of cached contents to return. The service may return\nfewer than this value.\nIf unspecified, some default (under maximum) number of items will be\nreturned.\nThe maximum value is 1000; values above 1000 will be coerced to 1000.",
            "name": "pageSize"
          },
          {
            "description": "Optional. A page token, received from a previous `ListCachedContents` call.\nProvide this to retrieve the subsequent page.\n\nWhen paginating, all other parameters provided to `ListCachedContents` must\nmatch the call that provided the page token.",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "pageToken"
          }
        ],
        "operationId": "ListCachedContents",
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "description": "Lists CachedContents."
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}:countMessageTokens": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "security": [],
        "description": "Runs a model's tokenizer on a string and returns the token count.",
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CountMessageTokensRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "model",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountMessageTokensResponse"
                }
              }
            }
          }
        },
        "operationId": "CountMessageTokens"
      }
    },
    "/v1beta/corpora": {
      "post": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Corpus"
                }
              }
            }
          }
        },
        "operationId": "CreateCorpus",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "parameters": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Corpus"
              }
            }
          },
          "description": "Required. The `Corpus` to create."
        },
        "description": "Creates an empty `Corpus`."
      },
      "get": {
        "security": [],
        "operationId": "ListCorpora",
        "tags": [
          "generativelanguage"
        ],
        "description": "Lists all `Corpora` owned by the user.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListCorporaResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "name": "pageSize",
            "in": "query",
            "description": "Optional. The maximum number of `Corpora` to return (per page).\nThe service may return fewer `Corpora`.\n\nIf unspecified, at most 10 `Corpora` will be returned.\nThe maximum size limit is 20 `Corpora` per page.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "description": "Optional. A page token, received from a previous `ListCorpora` call.\n\nProvide the `next_page_token` returned in the response as an argument to\nthe next request to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListCorpora`\nmust match the call that provided the page token.",
            "name": "pageToken"
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}/operations/{operation}": {
      "get": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            }
          }
        },
        "security": [],
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "name": "model"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "operation",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "operationId": "GetOperationByModelAndOperation",
        "x-google-operation-name": "GetOperation"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/fileSearchStores/{fileSearchStoresId}/media/{mediaId}": {
      "get": {
        "operationId": "DownloadMedia",
        "security": [],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DownloadMediaResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "fileSearchStoresId",
            "description": "Part of `name`. Required. The resource name of the media to download.\nExample: `fileSearchStores/abc-123/media/blob123`",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "mediaId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Part of `name`. See documentation of `fileSearchStoresId`."
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "description": "Downloads media from a `FileSearchStore`."
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/fileSearchStores": {
      "post": {
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "operationId": "CreateFileSearchStore",
        "parameters": [],
        "description": "Creates an empty `FileSearchStore`.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileSearchStore"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "requestBody": {
          "description": "Required. The `FileSearchStore` to create.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileSearchStore"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "operationId": "ListFileSearchStores",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListFileSearchStoresResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Lists all `FileSearchStores` owned by the user.",
        "parameters": [
          {
            "name": "pageSize",
            "description": "Optional. The maximum number of `FileSearchStores` to return (per page).\nThe service may return fewer `FileSearchStores`.\n\nIf unspecified, at most 10 `FileSearchStores` will be returned.\nThe maximum size limit is 20 `FileSearchStores` per page.",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "description": "Optional. A page token, received from a previous `ListFileSearchStores` call.\n\nProvide the `next_page_token` returned in the response as an argument to\nthe next request to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListFileSearchStores`\nmust match the call that provided the page token.",
            "name": "pageToken"
          }
        ]
      }
    },
    "/v1beta/dynamic/{dynamicId}:generateContent": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "x-google-operation-name": "GenerateContent",
        "security": [],
        "operationId": "GenerateContentByDynamicId",
        "tags": [
          "generativelanguage"
        ],
        "description": "Generates a model response given an input `GenerateContentRequest`.\nRefer to the [text generation\nguide](https://ai.google.dev/gemini-api/docs/text-generation) for detailed\nusage information. Input capabilities differ between models, including\ntuned models. Refer to the [model\nguide](https://ai.google.dev/gemini-api/docs/models/gemini) and [tuning\nguide](https://ai.google.dev/gemini-api/docs/model-tuning) for details.",
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "dynamicId",
            "required": true,
            "description": "Part of `model`. Required. The name of the `Model` to use for generating the completion.\n\nFormat: `models/{model}`.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1beta/files/{file}": {
      "delete": {
        "description": "Deletes the `File`.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "operationId": "DeleteFile",
        "parameters": [
          {
            "required": true,
            "in": "path",
            "name": "file",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "operationId": "GetFile",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/File"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Gets the metadata for the given `File`.",
        "parameters": [
          {
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "file",
            "schema": {
              "type": "string"
            },
            "in": "path"
          }
        ]
      }
    },
    "/v1beta/tunedModels/{tunedModel}:batchGenerateContent": {
      "post": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchGenerateContentOperation"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true,
            "name": "tunedModel"
          }
        ],
        "x-google-lro": "true",
        "operationId": "BatchGenerateContentByTunedModel",
        "security": [],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchGenerateContentRequest"
              }
            }
          }
        },
        "description": "Enqueues a batch of `GenerateContent` requests for batch processing.",
        "x-google-operation-name": "BatchGenerateContent",
        "tags": [
          "generativelanguage"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/tunedModels/{tunedModel}:generateText": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateTextRequest"
              }
            }
          },
          "description": "The request body."
        },
        "description": "Generates a response from the model given an input message.",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "tunedModel",
            "required": true,
            "schema": {
              "type": "string"
            },
            "in": "path"
          }
        ],
        "operationId": "GenerateTextByTunedModel",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateTextResponse"
                }
              }
            }
          }
        },
        "x-google-operation-name": "GenerateText"
      }
    },
    "/v1beta/models/{model}:batchEmbedContents": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "operationId": "BatchEmbedContents",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchEmbedContentsResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Generates multiple embedding vectors from the input `Content` which\nconsists of a batch of strings represented as `EmbedContentRequest`\nobjects.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "name": "model",
            "in": "path",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchEmbedContentsRequest"
              }
            }
          },
          "description": "The request body."
        }
      }
    },
    "/v1beta/models/{model}:generateContent": {
      "post": {
        "operationId": "GenerateContent",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentResponse"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "schema": {
              "type": "string"
            },
            "name": "model",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            }
          },
          "description": "The request body."
        },
        "description": "Generates a model response given an input `GenerateContentRequest`.\nRefer to the [text generation\nguide](https://ai.google.dev/gemini-api/docs/text-generation) for detailed\nusage information. Input capabilities differ between models, including\ntuned models. Refer to the [model\nguide](https://ai.google.dev/gemini-api/docs/models/gemini) and [tuning\nguide](https://ai.google.dev/gemini-api/docs/model-tuning) for details.",
        "security": []
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}:asyncBatchEmbedContent": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "x-google-lro": "true",
        "description": "Enqueues a batch of `EmbedContent` requests for batch processing.\nWe have a `BatchEmbedContents` handler in `GenerativeService`, but it was\nsynchronized. So we name this one to be `Async` to avoid confusion.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AsyncBatchEmbedContentRequest"
              }
            }
          },
          "description": "The request body."
        },
        "parameters": [
          {
            "name": "model",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "in": "path"
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncBatchEmbedContentOperation"
                }
              }
            }
          }
        },
        "operationId": "AsyncBatchEmbedContent",
        "tags": [
          "generativelanguage"
        ],
        "security": []
      }
    },
    "/v1beta/models": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListModelsResponse"
                }
              }
            }
          }
        },
        "description": "Lists the [`Model`s](https://ai.google.dev/gemini-api/docs/models/gemini)\navailable through the Gemini API.",
        "parameters": [
          {
            "description": "The maximum number of `Models` to return (per page).\n\nIf unspecified, 50 models will be returned per page.\nThis method returns at most 1000 models per page, even if you pass a larger\npage_size.",
            "name": "pageSize",
            "in": "query",
            "schema": {
              "format": "int32",
              "type": "integer"
            }
          },
          {
            "schema": {
              "type": "string"
            },
            "description": "A page token, received from a previous `ListModels` call.\n\nProvide the `page_token` returned by one request as an argument to the next\nrequest to retrieve the next page.\n\nWhen paginating, all other parameters provided to `ListModels` must match\nthe call that provided the page token.",
            "in": "query",
            "name": "pageToken"
          }
        ],
        "operationId": "ListModels",
        "tags": [
          "generativelanguage"
        ],
        "security": []
      }
    },
    "/v1beta/tunedModels/{tunedModel}:transferOwnership": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "operationId": "TransferOwnership",
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferOwnershipResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Transfers ownership of the tuned model.\nThis is the only way to change ownership of the tuned model.\nThe current owner will be downgraded to writer role.",
        "parameters": [
          {
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "name": "tunedModel",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransferOwnershipRequest"
              }
            }
          },
          "description": "The request body."
        }
      }
    },
    "/v1beta/fileSearchStores/{fileSearchStore}/documents/{document}": {
      "delete": {
        "security": [],
        "operationId": "DeleteDocument",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "description": "Deletes a `Document`.",
        "parameters": [
          {
            "name": "fileSearchStore",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path"
          },
          {
            "in": "path",
            "name": "document",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "description": "Optional. If set to true, any `Chunk`s and objects related to this `Document` will\nalso be deleted.\n\nIf false (the default), a `FAILED_PRECONDITION` error will be returned if\n`Document` contains any `Chunk`s.",
            "name": "force",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "GetDocument",
        "parameters": [
          {
            "required": true,
            "name": "fileSearchStore",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "name": "document",
            "required": true,
            "in": "path"
          }
        ],
        "security": [],
        "description": "Gets information about a specific `Document`."
      }
    },
    "/v1beta/environments/{environment}/files": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "x-google-operation-name": "GetEnvironmentFilesHttp",
        "parameters": [
          {
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "name": "environment",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "description": "Optional. The path of the file or directory within the environment.\nIf empty, defaults to the root of the workspace.\nExample: \"workspace/src/main.py\"",
            "in": "query",
            "name": "path",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "recursive",
            "description": "Optional. If true and the path is a directory, recursively lists all files\nand subdirectories. Defaults to false (immediate children only).",
            "schema": {
              "type": "boolean"
            },
            "in": "query"
          },
          {
            "name": "page_size",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "in": "query",
            "description": "Optional. Maximum number of entries to return per page (for directory\nlisting). If unspecified, defaults to 100. Maximum is 1000.\nNOLINT"
          },
          {
            "schema": {
              "type": "string"
            },
            "name": "page_token",
            "description": "Optional. Pagination token for directory listing.\nNOLINT",
            "in": "query"
          }
        ],
        "operationId": "GetEnvironmentFilesHttpByEnvironment",
        "security": [],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEnvironmentFilesResponse"
                }
              }
            }
          }
        },
        "description": "Retrieves file metadata or directory contents from an environment's\nsnapshot. To download file contents directly, pass ?alt=media or use the\nfiles.download helper.",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/tunedModels/{tunedModel}:asyncBatchEmbedContent": {
      "post": {
        "x-google-lro": "true",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AsyncBatchEmbedContentOperation"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "x-google-operation-name": "AsyncBatchEmbedContent",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "name": "tunedModel"
          }
        ],
        "operationId": "AsyncBatchEmbedContentByTunedModel",
        "security": [],
        "description": "Enqueues a batch of `EmbedContent` requests for batch processing.\nWe have a `BatchEmbedContents` handler in `GenerativeService`, but it was\nsynchronized. So we name this one to be `Async` to avoid confusion.",
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AsyncBatchEmbedContentRequest"
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/fileSearchStores/{fileSearchStoresId}/upload/operations/{operationsId}": {
      "get": {
        "parameters": [
          {
            "name": "fileSearchStoresId",
            "schema": {
              "type": "string"
            },
            "description": "Part of `name`. The name of the operation resource.",
            "in": "path",
            "required": true
          },
          {
            "description": "Part of `name`. See documentation of `fileSearchStoresId`.",
            "name": "operationsId",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true
          }
        ],
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            }
          }
        },
        "security": [],
        "operationId": "GetOperationByFileSearchStoresIdAndOperationsId",
        "tags": [
          "generativelanguage"
        ],
        "x-google-operation-name": "GetOperation"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/tunedModels/{tunedModel}:generateContent": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "operationId": "GenerateContentByTunedModel",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentResponse"
                }
              }
            }
          }
        },
        "x-google-operation-name": "GenerateContent",
        "description": "Generates a model response given an input `GenerateContentRequest`.\nRefer to the [text generation\nguide](https://ai.google.dev/gemini-api/docs/text-generation) for detailed\nusage information. Input capabilities differ between models, including\ntuned models. Refer to the [model\nguide](https://ai.google.dev/gemini-api/docs/models/gemini) and [tuning\nguide](https://ai.google.dev/gemini-api/docs/model-tuning) for details.",
        "security": [],
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "tunedModel",
            "schema": {
              "type": "string"
            },
            "in": "path",
            "required": true
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            }
          }
        }
      }
    },
    "/v1beta/files": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "parameters": [
          {
            "name": "pageSize",
            "schema": {
              "format": "int32",
              "type": "integer"
            },
            "description": "Optional. Maximum number of `File`s to return per page.\nIf unspecified, defaults to 10. Maximum `page_size` is 100.",
            "in": "query"
          },
          {
            "name": "pageToken",
            "description": "Optional. A page token from a previous `ListFiles` call.",
            "schema": {
              "type": "string"
            },
            "in": "query"
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListFilesResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "ListFiles",
        "description": "Lists the metadata for `File`s owned by the requesting project."
      },
      "post": {
        "description": "Creates a `File`.",
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFileRequest"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFileResponse"
                }
              }
            }
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "parameters": [],
        "operationId": "CreateFile"
      }
    },
    "/v1beta/dynamic/{dynamicId}:streamGenerateContent": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "operationId": "StreamGenerateContentByDynamicId",
        "security": [],
        "parameters": [
          {
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Part of `model`. Required. The name of the `Model` to use for generating the completion.\n\nFormat: `models/{model}`.",
            "name": "dynamicId",
            "required": true
          }
        ],
        "description": "Generates a [streamed\nresponse](https://ai.google.dev/gemini-api/docs/text-generation?lang=python#generate-a-text-stream)\nfrom the model given an input `GenerateContentRequest`.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            }
          }
        },
        "tags": [
          "generativelanguage"
        ],
        "x-google-operation-name": "StreamGenerateContent"
      }
    },
    "/v1beta/fileSearchStores/{fileSearchStore}": {
      "delete": {
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "operationId": "DeleteFileSearchStore",
        "parameters": [
          {
            "in": "path",
            "required": true,
            "name": "fileSearchStore",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "force",
            "description": "Optional. If set to true, any `Document`s and objects related to this\n`FileSearchStore` will also be deleted.\n\nIf false (the default), a `FAILED_PRECONDITION` error will be returned if\n`FileSearchStore` contains any `Document`s."
          }
        ],
        "description": "Deletes a `FileSearchStore`.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            },
            "description": "Successful operation"
          }
        }
      },
      "get": {
        "security": [],
        "operationId": "GetFileSearchStore",
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "fileSearchStore",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true
          }
        ],
        "description": "Gets information about a specific `FileSearchStore`.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileSearchStore"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/environments/{id}": {
      "delete": {
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpBody"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "DeleteEnvironmentHttp",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "name": "id",
            "required": true
          }
        ],
        "description": "Deletes an environment.",
        "security": [],
        "tags": [
          "generativelanguage"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "operationId": "GetEnvironmentHttp",
        "security": [],
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "path",
            "name": "id",
            "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.",
            "required": true
          }
        ],
        "description": "Gets an environment.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HttpBody"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/fileSearchStores/{fileSearchStore}:importFile": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "operationId": "ImportFile",
        "x-google-lro": "true",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImportFileRequest"
              }
            }
          },
          "description": "The request body."
        },
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportFileOperation"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "required": true,
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "fileSearchStore"
          }
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "description": "Imports a `File` from File Service to a `FileSearchStore`.",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/models/{model}:embedText": {
      "post": {
        "description": "Generates an embedding from the model given an input message.",
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmbedTextRequest"
              }
            }
          }
        },
        "parameters": [
          {
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "model"
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmbedTextResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "operationId": "EmbedText"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}/operations": {
      "get": {
        "parameters": [
          {
            "name": "model",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "description": "The standard list filter.",
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "filter"
          },
          {
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            },
            "description": "The standard list page size.",
            "name": "pageSize"
          },
          {
            "name": "pageToken",
            "schema": {
              "type": "string"
            },
            "description": "The standard list page token.",
            "in": "query"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "name": "returnPartialSuccess",
            "description": "When set to `true`, operations that are reachable are returned as normal,\nand those that are unreachable are returned in the\nListOperationsResponse.unreachable\nfield.\n\nThis can only be `true` when reading across collections. For example, when\n`parent` is set to `\"projects/example/locations/-\"`.\n\nThis field is not supported by default and will result in an\n`UNIMPLEMENTED` error if set unless explicitly documented otherwise in\nservice or product specific documentation.",
            "in": "query"
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "description": "Lists operations that match the specified filter in the request. If the\nserver doesn't support this method, it returns `UNIMPLEMENTED`.",
        "security": [],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListOperationsResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "x-google-operation-name": "ListOperations",
        "operationId": "ListOperationsByModel"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}:streamGenerateContent": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            }
          }
        },
        "description": "Generates a [streamed\nresponse](https://ai.google.dev/gemini-api/docs/text-generation?lang=python#generate-a-text-stream)\nfrom the model given an input `GenerateContentRequest`.",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "model",
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "operationId": "StreamGenerateContent",
        "security": [],
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/files/{file}:download": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "operationId": "DownloadFile",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DownloadFileResponse"
                }
              }
            }
          }
        },
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "parameters": [
          {
            "name": "file",
            "in": "path",
            "required": true,
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "description": "Download the `File`."
      }
    },
    "/v1beta/batches/{generateContentBatch}": {
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "name": "generateContentBatch",
            "required": true,
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          }
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Operation"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Gets the latest state of a long-running operation.  Clients can use this\nmethod to poll the operation result at intervals as recommended by the API\nservice.",
        "x-google-operation-name": "GetOperation",
        "security": [],
        "operationId": "GetOperationByGenerateContentBatch"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "delete": {
        "security": [],
        "description": "Deletes a long-running operation. This method indicates that the client is\nno longer interested in the operation result. It does not cancel the\noperation. If the server doesn't support this method, it returns\n`google.rpc.Code.UNIMPLEMENTED`.",
        "parameters": [
          {
            "required": true,
            "in": "path",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "generateContentBatch",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "operationId": "DeleteOperation",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/models/{model}:generateText": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateTextResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateTextRequest"
              }
            }
          },
          "description": "The request body."
        },
        "description": "Generates a response from the model given an input message.",
        "security": [],
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "name": "model",
            "in": "path"
          }
        ],
        "operationId": "GenerateText",
        "tags": [
          "generativelanguage"
        ]
      }
    },
    "/v1beta/cachedContents/{id}": {
      "delete": {
        "description": "Deletes CachedContent resource.",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "operationId": "DeleteCachedContent",
        "tags": [
          "generativelanguage"
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "patch": {
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "in": "path",
            "name": "id",
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "The list of fields to update.",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "google-fieldmask",
              "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$"
            },
            "name": "updateMask"
          }
        ],
        "requestBody": {
          "description": "Required. The content cache entry to update",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CachedContent"
              }
            }
          }
        },
        "description": "Updates CachedContent resource (only expiration is updatable).",
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CachedContent"
                }
              }
            }
          }
        },
        "operationId": "UpdateCachedContent",
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ]
      },
      "get": {
        "description": "Reads CachedContent resource.",
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CachedContent"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "name": "id",
            "in": "path",
            "required": true
          }
        ],
        "operationId": "GetCachedContent"
      }
    },
    "/v1beta/models/{model}:countTokens": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "post": {
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true,
            "name": "model"
          }
        ],
        "operationId": "CountTokens",
        "security": [],
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountTokensResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CountTokensRequest"
              }
            }
          }
        },
        "description": "Runs a model's tokenizer on input `Content` and returns the token count.\nRefer to the [tokens guide](https://ai.google.dev/gemini-api/docs/tokens)\nto learn more about tokens."
      }
    },
    "/v1beta/fileSearchStores/{fileSearchStore}:uploadToFileSearchStore": {
      "post": {
        "description": "Uploads data to a FileSearchStore, preprocesses and chunks before storing\nit in a FileSearchStore Document.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UploadToFileSearchStoreRequest"
              }
            }
          },
          "description": "The request body."
        },
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "schema": {
              "type": "string"
            },
            "name": "fileSearchStore",
            "in": "path"
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "security": [
          {
            "google_oauth_implicit": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "google_oauth_code": [
              "https://www.googleapis.com/auth/devstorage.read_only"
            ]
          },
          {
            "bearer_auth": []
          }
        ],
        "operationId": "UploadToFileSearchStore",
        "x-google-lro": "true",
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadToFileSearchStoreOperation"
                }
              }
            }
          }
        }
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}:embedContent": {
      "post": {
        "security": [],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmbedContentRequest"
              }
            }
          },
          "description": "The request body."
        },
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmbedContentResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Generates a text embedding vector from the input `Content` using the\nspecified [Gemini Embedding\nmodel](https://ai.google.dev/gemini-api/docs/models/gemini#text-embedding).",
        "parameters": [
          {
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            },
            "required": true,
            "in": "path",
            "name": "model"
          }
        ],
        "tags": [
          "generativelanguage"
        ],
        "operationId": "EmbedContent"
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/tunedModels/{tunedModel}:streamGenerateContent": {
      "post": {
        "security": [],
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentRequest"
              }
            }
          }
        },
        "description": "Generates a [streamed\nresponse](https://ai.google.dev/gemini-api/docs/text-generation?lang=python#generate-a-text-stream)\nfrom the model given an input `GenerateContentRequest`.",
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentResponse"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "parameters": [
          {
            "in": "path",
            "required": true,
            "name": "tunedModel",
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-google-operation-name": "StreamGenerateContent",
        "operationId": "StreamGenerateContentByTunedModel",
        "tags": [
          "generativelanguage"
        ]
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/models/{model}:batchGenerateContent": {
      "post": {
        "requestBody": {
          "description": "The request body.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchGenerateContentRequest"
              }
            }
          }
        },
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BatchGenerateContentOperation"
                }
              }
            }
          }
        },
        "description": "Enqueues a batch of `GenerateContent` requests for batch processing.",
        "parameters": [
          {
            "name": "model",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122.",
            "required": true,
            "in": "path"
          }
        ],
        "x-google-lro": "true",
        "operationId": "BatchGenerateContent",
        "tags": [
          "generativelanguage"
        ],
        "security": []
      },
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ]
    },
    "/v1beta/environments/{id}:get": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "get": {
        "tags": [
          "generativelanguage"
        ],
        "responses": {
          "default": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "Successful operation"
          }
        },
        "description": "Gets an environment.",
        "security": [],
        "parameters": [
          {
            "in": "path",
            "description": "Required. Resource ID segment making up resource `name`. It identifies the resource\nwithin its parent collection as described in https://google.aip.dev/122.",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "GetEnvironment"
      }
    },
    "/v1beta/batches/{generateContentBatch}:updateGenerateContentBatch": {
      "parameters": [
        {
          "$ref": "#/components/parameters/alt"
        },
        {
          "$ref": "#/components/parameters/callback"
        },
        {
          "$ref": "#/components/parameters/prettyPrint"
        },
        {
          "$ref": "#/components/parameters/_.xgafv"
        }
      ],
      "patch": {
        "responses": {
          "default": {
            "description": "Successful operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenerateContentBatch"
                }
              }
            }
          }
        },
        "requestBody": {
          "description": "Required. The batch to update.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateContentBatch"
              }
            }
          }
        },
        "description": "Updates a batch of GenerateContent requests for batch processing.",
        "security": [],
        "parameters": [
          {
            "required": true,
            "name": "generateContentBatch",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "description": "Resource ID segment making up resource `name`. It identifies the resource within its parent collection as described in https://google.aip.dev/122."
          },
          {
            "in": "query",
            "name": "updateMask",
            "description": "Optional. The list of fields to update.",
            "schema": {
              "pattern": "^(\\s*[^,\\s.]+(\\s*[,.]\\s*[^,\\s.]+)*)?$",
              "format": "google-fieldmask",
              "type": "string"
            }
          }
        ],
        "operationId": "UpdateGenerateContentBatch",
        "tags": [
          "generativelanguage"
        ]
      }
    }
  },
  "externalDocs": {
    "description": "Find more info here.",
    "url": "https://developers.generativeai.google/api"
  },
  "info": {
    "title": "Gemini API",
    "version": "v1beta",
    "x-google-revision": "20261010",
    "description": "The Gemini API allows developers to build generative AI applications using Gemini models. Gemini is our most capable model, built from the ground up to be multimodal. It can generalize and seamlessly understand, operate across, and combine different types of information including language, images, audio, video, and code. You can use the Gemini API for use cases like reasoning across text and images, content generation, dialogue agents, summarization and classification systems, and more."
  }
}
