diff --git a/internal/cli/agent/create.go b/internal/cli/agent/create.go index 8a995c8..2c21094 100644 --- a/internal/cli/agent/create.go +++ b/internal/cli/agent/create.go @@ -30,7 +30,7 @@ import ( var createCmdMeta = []flagutil.FlagMeta{ {FlagName: "agent-config", Shorthand: "a", FieldPath: "Body.AgentConfig", Kind: flagutil.FlagKindUnion, Union: &flagutil.UnionMeta{Discriminated: false, Optional: true, TypeDescription: "JSON value (one of: { \"max_total_tokens\": string, \"model\": string })"}}, {FlagName: "base-agent", FieldPath: "Body.BaseAgent", Kind: flagutil.FlagKindString, Required: true, Description: "The base agent to extend. [required]"}, - {FlagName: "base-environment", FieldPath: "Body.BaseEnvironment", Kind: flagutil.FlagKindUnion, Union: &flagutil.UnionMeta{Discriminated: false, Optional: true, TypeDescription: "JSON value (one of: { \"env\": object | string, \"environment_id\": string, \"network\": object | string, \"sources\": object[] } | string)"}}, + {FlagName: "base-environment", FieldPath: "Body.BaseEnvironment", Kind: flagutil.FlagKindUnion, Union: &flagutil.UnionMeta{Discriminated: false, Optional: true, TypeDescription: "JSON value (one of: { \"env\": object, \"environment_id\": string, \"network\": object | string, \"sources\": object[] } | string)"}}, {FlagName: "description", FieldPath: "Body.Description", Kind: flagutil.FlagKindString, Optional: true, Description: "Agent description for developers to quickly read and understand."}, {FlagName: "id", Shorthand: "i", FieldPath: "Body.ID", Kind: flagutil.FlagKindString, Required: true, Description: "The unique identifier for the agent. [required]"}, {FlagName: "system-instruction", Shorthand: "s", FieldPath: "Body.SystemInstruction", Kind: flagutil.FlagKindString, Optional: true, Description: "System instruction for the agent."}, diff --git a/internal/sdk/models/interactions/environment.go b/internal/sdk/models/interactions/environment.go index d7dd6d6..1e431d4 100644 --- a/internal/sdk/models/interactions/environment.go +++ b/internal/sdk/models/interactions/environment.go @@ -27,26 +27,25 @@ import ( type EnvType string const ( - EnvTypeMapOfEnvVar EnvType = "mapOfEnvVar" - EnvTypeStr EnvType = "str" - EnvTypeUnknown EnvType = "Unknown" + EnvTypeEnvVar EnvType = "EnvVar" + EnvTypeStr EnvType = "str" + EnvTypeUnknown EnvType = "Unknown" ) -// Env - Environment variables to set in the sandbox environment. type Env struct { - MapOfEnvVar map[string]EnvVar `queryParam:"inline" union:"member"` - Str *string `queryParam:"inline" union:"member"` - UnknownRaw json.RawMessage `json:"-" union:"unknown"` + EnvVar *EnvVar `queryParam:"inline" union:"member"` + Str *string `queryParam:"inline" union:"member"` + UnknownRaw json.RawMessage `json:"-" union:"unknown"` Type EnvType } -func CreateEnvMapOfEnvVar(mapOfEnvVar map[string]EnvVar) Env { - typ := EnvTypeMapOfEnvVar +func CreateEnvEnvVar(envVar EnvVar) Env { + typ := EnvTypeEnvVar return Env{ - MapOfEnvVar: mapOfEnvVar, - Type: typ, + EnvVar: &envVar, + Type: typ, } } @@ -80,11 +79,11 @@ func (u *Env) UnmarshalJSON(data []byte) error { var candidates []utils.UnionCandidate // Collect all valid candidates - var mapOfEnvVar map[string]EnvVar = map[string]EnvVar{} - if err := utils.UnmarshalJSON(data, &mapOfEnvVar, "", true, nil); err == nil { + var envVar EnvVar = EnvVar{} + if err := utils.UnmarshalJSON(data, &envVar, "", true, nil); err == nil { candidates = append(candidates, utils.UnionCandidate{ - Type: EnvTypeMapOfEnvVar, - Value: mapOfEnvVar, + Type: EnvTypeEnvVar, + Value: &envVar, }) } @@ -113,8 +112,8 @@ func (u *Env) UnmarshalJSON(data []byte) error { // Set the union type and value based on the best candidate u.Type = best.Type.(EnvType) switch best.Type { - case EnvTypeMapOfEnvVar: - u.MapOfEnvVar = best.Value.(map[string]EnvVar) + case EnvTypeEnvVar: + u.EnvVar = best.Value.(*EnvVar) return nil case EnvTypeStr: u.Str = best.Value.(*string) @@ -127,8 +126,8 @@ func (u *Env) UnmarshalJSON(data []byte) error { } func (u Env) MarshalJSON() ([]byte, error) { - if u.MapOfEnvVar != nil { - return utils.MarshalJSON(u.MapOfEnvVar, "", true) + if u.EnvVar != nil { + return utils.MarshalJSON(u.EnvVar, "", true) } if u.Str != nil { @@ -284,7 +283,7 @@ func (u Network) MarshalJSON() ([]byte, error) { // Environment - Configuration for a custom environment. type Environment struct { // Environment variables to set in the sandbox environment. - Env *Env `json:"env,omitzero"` + Env map[string]Env `json:"env,omitzero"` // Optional. The environment ID for the interaction. If specified, the request will // update the existing environment instead of creating a new one. EnvironmentID *string `json:"environment_id,omitzero"` @@ -306,7 +305,7 @@ func (e *Environment) UnmarshalJSON(data []byte) error { return nil } -func (e *Environment) GetEnv() *Env { +func (e *Environment) GetEnv() map[string]Env { if e == nil { return nil } diff --git a/internal/usage/bodyschemas.go b/internal/usage/bodyschemas.go index 05687d2..f736be6 100644 --- a/internal/usage/bodyschemas.go +++ b/internal/usage/bodyschemas.go @@ -22,10 +22,10 @@ import ( ) var bodySchemas = map[string]string{ - "CreateAgent": "{\"$defs\":{\"Agent\":{\"description\":\"An agent definition for the CreateAgent API.\\nThis message is the target for annotation-parser-based JSON parsing.\\nNew format:\\n {\\n \\\"id\\\": \\\"customer-sentinel\\\",\\n \\\"base_agent\\\": \\\"\\\",\\n \\\"system_instruction\\\": \\\"...\\\",\\n \\\"base_environment\\\": { \\\"type\\\": \\\"remote\\\", \\\"sources\\\": [...] },\\n \\\"tools\\\": [ {\\\"type\\\": \\\"code_execution\\\"} ]\\n }\",\"properties\":{\"agent_config\":{\"description\":\"Configuration parameters for the agent.\",\"oneOf\":[{\"$ref\":\"#/$defs/AntigravityAgentConfig\"}]},\"base_agent\":{\"description\":\"The base agent to extend.\",\"type\":\"string\"},\"base_environment\":{\"description\":\"The environment configuration for the agent.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentConfig\"},{\"type\":\"string\"}]},\"description\":{\"description\":\"Agent description for developers to quickly read and understand.\",\"type\":\"string\"},\"id\":{\"description\":\"The unique identifier for the agent.\",\"type\":\"string\"},\"system_instruction\":{\"description\":\"System instruction for the agent.\",\"type\":\"string\"},\"tools\":{\"description\":\"The tools available to the agent.\",\"items\":{\"$ref\":\"#/$defs/AgentTool\"},\"type\":\"array\"\x7d\x7d,\"required\":[\"base_agent\",\"id\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"agents\",\"name\":\"Agent\"}],\"x-speakeasy-model-namespace\":\"agents\"},\"AgentTool\":{\"description\":\"A tool that the agent can use.\",\"oneOf\":[{\"$ref\":\"#/$defs/CodeExecution\"},{\"$ref\":\"#/$defs/Function\"},{\"$ref\":\"#/$defs/GoogleSearch\"},{\"$ref\":\"#/$defs/McpServer\"},{\"$ref\":\"#/$defs/UrlContext\"}],\"x-speakeasy-exports\":[{\"group\":\"agents\",\"name\":\"AgentTool\"}],\"x-speakeasy-model-namespace\":\"agents\"},\"AllowedTools\":{\"description\":\"The configuration for allowed tools.\",\"properties\":{\"mode\":{\"$ref\":\"#/$defs/ToolChoiceType\",\"description\":\"The mode of the tool choice.\"},\"tools\":{\"description\":\"The names of the allowed tools.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AllowedTools\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"AntigravityAgentConfig\":{\"description\":\"Configuration for the Antigravity agent runtime.\\nProvides server-side control over the agent's execution environment\\nand tool configuration.\",\"properties\":{\"max_total_tokens\":{\"description\":\"Max total tokens for the agent run.\",\"format\":\"int64\",\"type\":\"string\"},\"model\":{\"description\":\"The model to use for agent reasoning.\",\"type\":\"string\"},\"type\":{\"const\":\"antigravity\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AntigravityAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"CodeExecution\":{\"description\":\"A tool that can be used by the model to execute code.\",\"properties\":{\"type\":{\"const\":\"code_execution\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"EgressRule\":{\"description\":\"A single domain allowlist rule with optional header injection.\",\"properties\":{\"credential\":{\"description\":\"Optional. Reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"domain\":{\"description\":\"Domain to allow outbound requests to. Supports wildcards (e.g.\\n'*.googleapis.com'). Use '*' to allow all domains.\",\"type\":\"string\"},\"transform\":{\"description\":\"Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.\",\"oneOf\":[{\"description\":\"A list of headers to inject.\",\"items\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header to inject.\",\"type\":\"object\"},\"type\":\"array\"},{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header injection mapping, e.g., {\\\"Authorization\\\": \\\"Bearer token\\\"}.\",\"type\":\"object\"}]\x7d\x7d,\"required\":[\"domain\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"AllowlistEntry\"},\"EnvVar\":{\"description\":\"An environment variable to set in the execution environment.\",\"properties\":{\"credential\":{\"description\":\"Optional reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"value\":{\"description\":\"Direct string value for plain environment variables.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"EnvironmentConfig\":{\"description\":\"Configuration for a custom environment.\",\"examples\":[{\"sources\":[{\"content\":\"You are a data analyst. Always include visualizations and export results as PDF.\",\"target\":\".agents/AGENTS.md\",\"type\":\"inline\"},{\"content\":\"---\\nname: slide-maker\\ndescription: Create HTML slide decks\\n---\\n# Slide Maker\\n\\nWhen asked to create a presentation:\\n1. Analyze the input data\\n2. Create an HTML slide deck with reveal.js\\n3. Save to /workspace/output/slides.html\",\"target\":\".agents/skills/slide-maker/SKILL.md\",\"type\":\"inline\"}],\"type\":\"remote\"},{\"sources\":[{\"source\":\"https://github.com/my-org/my-skills.git\",\"target\":\".agents/skills\",\"type\":\"repository\"},{\"source\":\"gs://my-bucket/my-folder\",\"target\":\"/workspace/data\",\"type\":\"gcs\"}],\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"pypi.org\"},{\"domain\":\"*.github.com\"}]},\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"api.github.com\",\"transform\":{\"Authorization\":\"Bearer YOUR_GITHUB_TOKEN\"\x7d\x7d]},\"type\":\"remote\"}],\"properties\":{\"env\":{\"description\":\"Environment variables to set in the sandbox environment.\",\"oneOf\":[{\"additionalProperties\":{\"$ref\":\"#/$defs/EnvVar\"},\"type\":\"object\"},{\"type\":\"string\"}]},\"environment_id\":{\"description\":\"Optional. The environment ID for the interaction. If specified, the request will\\nupdate the existing environment instead of creating a new one.\",\"type\":\"string\"},\"network\":{\"description\":\"Network configuration for the environment.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentNetworkEgressAllowlist\"},{\"enum\":[\"disabled\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]},\"sources\":{\"items\":{\"$ref\":\"#/$defs/Source\"},\"type\":\"array\"},\"type\":{\"const\":\"remote\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Inline Sources\",\"External Sources\",\"Network Allowlist\",\"Proxy Credentials\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Environment\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"Environment\",\"x-speakeasy-unknown-values\":\"disallow\"},\"EnvironmentNetworkEgressAllowlist\":{\"description\":\"Network egress configuration for the environment.\",\"example\":{\"allowlist\":[{\"domain\":\"github.com\",\"transform\":[{\"Authorization\":\"Bearer your-token\"}]},{\"domain\":\"*.googleapis.com\"}]},\"properties\":{\"allowlist\":{\"description\":\"List of allowed domains and their configurations. Set to `\\\"disabled\\\"`\\nto block all network egress.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/EgressRule\"},\"type\":\"array\"},{\"enum\":[\"disabled\"],\"title\":\"Disabled\",\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Network Allowlist\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"Function\":{\"description\":\"A tool that can be used by the model.\",\"properties\":{\"description\":{\"description\":\"A description of the function.\",\"type\":\"string\"},\"name\":{\"description\":\"The name of the function.\",\"type\":\"string\"},\"parameters\":{\"description\":\"The JSON Schema for the function's parameters.\"},\"type\":{\"const\":\"function\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Function\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearch\":{\"description\":\"A tool that can be used by the model to search Google.\",\"properties\":{\"search_types\":{\"description\":\"The types of search grounding to enable.\",\"items\":{\"enum\":[\"web_search\",\"image_search\",\"enterprise_web_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Setting this field enables web search. Only text results are returned.\",\"Setting this field enables image search. Image bytes are returned.\",\"Setting this field enables enterprise web search.\"]},\"type\":\"array\"},\"type\":{\"const\":\"google_search\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"McpServer\":{\"description\":\"A MCPServer is a server that can be called by the model to perform actions.\",\"properties\":{\"allowed_tools\":{\"description\":\"The allowed tools.\",\"items\":{\"$ref\":\"#/$defs/AllowedTools\"},\"type\":\"array\"},\"headers\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"Optional: Fields for authentication headers, timeouts, etc., if needed.\",\"type\":\"object\"},\"name\":{\"description\":\"The name of the MCPServer.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server\"},\"url\":{\"description\":\"The full URL for the MCPServer endpoint.\\nExample: \\\"https://api.example.com/mcp\\\"\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServer\"},\"Source\":{\"description\":\"A source to be mounted into the environment.\",\"properties\":{\"content\":{\"description\":\"The inline content if `type` is `INLINE`.\",\"type\":\"string\"},\"encoding\":{\"description\":\"Optional encoding for inline content (e.g. `base64`).\",\"type\":\"string\"},\"source\":{\"description\":\"The source of the environment.\\nFor Cloud Storage, this is the Cloud Storage path.\\nFor GitHub, this is the GitHub path.\",\"type\":\"string\"},\"target\":{\"description\":\"Where the source should appear in the environment.\",\"type\":\"string\"},\"type\":{\"enum\":[\"gcs\",\"inline\",\"repository\",\"skill_registry\"],\"type\":\"string\",\"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://).\",\"A skill resource from the Skill Registry Service.\\nSkill: projects/{project}/locations/{location}/skills/{skill}\\nSkillRevision:\\nprojects/{project}/locations/{location}/skills/{skill}/revisions/{revision}\\nSupport mounting all skills under a project:\\nprojects/{project}/locations/{location}/skills.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ToolChoiceType\":{\"enum\":[\"auto\",\"any\",\"none\",\"validated\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Auto tool choice.\",\"Any tool choice.\",\"No tool choice.\",\"Validated tool choice.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ToolChoiceType\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"UrlContext\":{\"description\":\"A tool that can be used by the model to fetch URL context.\",\"properties\":{\"type\":{\"const\":\"url_context\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContext\"\x7d\x7d,\"$ref\":\"#/$defs/Agent\"}", + "CreateAgent": "{\"$defs\":{\"Agent\":{\"description\":\"An agent definition for the CreateAgent API.\\nThis message is the target for annotation-parser-based JSON parsing.\\nNew format:\\n {\\n \\\"id\\\": \\\"customer-sentinel\\\",\\n \\\"base_agent\\\": \\\"\\\",\\n \\\"system_instruction\\\": \\\"...\\\",\\n \\\"base_environment\\\": { \\\"type\\\": \\\"remote\\\", \\\"sources\\\": [...] },\\n \\\"tools\\\": [ {\\\"type\\\": \\\"code_execution\\\"} ]\\n }\",\"properties\":{\"agent_config\":{\"description\":\"Configuration parameters for the agent.\",\"oneOf\":[{\"$ref\":\"#/$defs/AntigravityAgentConfig\"}]},\"base_agent\":{\"description\":\"The base agent to extend.\",\"type\":\"string\"},\"base_environment\":{\"description\":\"The environment configuration for the agent.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentConfig\"},{\"type\":\"string\"}]},\"description\":{\"description\":\"Agent description for developers to quickly read and understand.\",\"type\":\"string\"},\"id\":{\"description\":\"The unique identifier for the agent.\",\"type\":\"string\"},\"system_instruction\":{\"description\":\"System instruction for the agent.\",\"type\":\"string\"},\"tools\":{\"description\":\"The tools available to the agent.\",\"items\":{\"$ref\":\"#/$defs/AgentTool\"},\"type\":\"array\"\x7d\x7d,\"required\":[\"base_agent\",\"id\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"agents\",\"name\":\"Agent\"}],\"x-speakeasy-model-namespace\":\"agents\"},\"AgentTool\":{\"description\":\"A tool that the agent can use.\",\"oneOf\":[{\"$ref\":\"#/$defs/CodeExecution\"},{\"$ref\":\"#/$defs/Function\"},{\"$ref\":\"#/$defs/GoogleSearch\"},{\"$ref\":\"#/$defs/McpServer\"},{\"$ref\":\"#/$defs/UrlContext\"}],\"x-speakeasy-exports\":[{\"group\":\"agents\",\"name\":\"AgentTool\"}],\"x-speakeasy-model-namespace\":\"agents\"},\"AllowedTools\":{\"description\":\"The configuration for allowed tools.\",\"properties\":{\"mode\":{\"$ref\":\"#/$defs/ToolChoiceType\",\"description\":\"The mode of the tool choice.\"},\"tools\":{\"description\":\"The names of the allowed tools.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AllowedTools\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"AntigravityAgentConfig\":{\"description\":\"Configuration for the Antigravity agent runtime.\\nProvides server-side control over the agent's execution environment\\nand tool configuration.\",\"properties\":{\"max_total_tokens\":{\"description\":\"Max total tokens for the agent run.\",\"format\":\"int64\",\"type\":\"string\"},\"model\":{\"description\":\"The model to use for agent reasoning.\",\"type\":\"string\"},\"type\":{\"const\":\"antigravity\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AntigravityAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"CodeExecution\":{\"description\":\"A tool that can be used by the model to execute code.\",\"properties\":{\"type\":{\"const\":\"code_execution\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"EgressRule\":{\"description\":\"A single domain allowlist rule with optional header injection.\",\"properties\":{\"credential\":{\"description\":\"Optional. Reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"domain\":{\"description\":\"Domain to allow outbound requests to. Supports wildcards (e.g.\\n'*.googleapis.com'). Use '*' to allow all domains.\",\"type\":\"string\"},\"transform\":{\"description\":\"Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.\",\"oneOf\":[{\"description\":\"A list of headers to inject.\",\"items\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header to inject.\",\"type\":\"object\"},\"type\":\"array\"},{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header injection mapping, e.g., {\\\"Authorization\\\": \\\"Bearer token\\\"}.\",\"type\":\"object\"}]\x7d\x7d,\"required\":[\"domain\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"AllowlistEntry\"},\"EnvVar\":{\"description\":\"An environment variable to set in the execution environment.\",\"properties\":{\"credential\":{\"description\":\"Optional reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"value\":{\"description\":\"Direct string value for plain environment variables.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"EnvironmentConfig\":{\"description\":\"Configuration for a custom environment.\",\"examples\":[{\"sources\":[{\"content\":\"You are a data analyst. Always include visualizations and export results as PDF.\",\"target\":\".agents/AGENTS.md\",\"type\":\"inline\"},{\"content\":\"---\\nname: slide-maker\\ndescription: Create HTML slide decks\\n---\\n# Slide Maker\\n\\nWhen asked to create a presentation:\\n1. Analyze the input data\\n2. Create an HTML slide deck with reveal.js\\n3. Save to /workspace/output/slides.html\",\"target\":\".agents/skills/slide-maker/SKILL.md\",\"type\":\"inline\"}],\"type\":\"remote\"},{\"sources\":[{\"source\":\"https://github.com/my-org/my-skills.git\",\"target\":\".agents/skills\",\"type\":\"repository\"},{\"source\":\"gs://my-bucket/my-folder\",\"target\":\"/workspace/data\",\"type\":\"gcs\"}],\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"pypi.org\"},{\"domain\":\"*.github.com\"}]},\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"api.github.com\",\"transform\":{\"Authorization\":\"Bearer YOUR_GITHUB_TOKEN\"\x7d\x7d]},\"type\":\"remote\"}],\"properties\":{\"env\":{\"additionalProperties\":{\"oneOf\":[{\"$ref\":\"#/$defs/EnvVar\"},{\"type\":\"string\"}]},\"description\":\"Environment variables to set in the sandbox environment.\",\"type\":\"object\"},\"environment_id\":{\"description\":\"Optional. The environment ID for the interaction. If specified, the request will\\nupdate the existing environment instead of creating a new one.\",\"type\":\"string\"},\"network\":{\"description\":\"Network configuration for the environment.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentNetworkEgressAllowlist\"},{\"enum\":[\"disabled\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]},\"sources\":{\"items\":{\"$ref\":\"#/$defs/Source\"},\"type\":\"array\"},\"type\":{\"const\":\"remote\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Inline Sources\",\"External Sources\",\"Network Allowlist\",\"Proxy Credentials\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Environment\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"Environment\",\"x-speakeasy-unknown-values\":\"disallow\"},\"EnvironmentNetworkEgressAllowlist\":{\"description\":\"Network egress configuration for the environment.\",\"example\":{\"allowlist\":[{\"domain\":\"github.com\",\"transform\":[{\"Authorization\":\"Bearer your-token\"}]},{\"domain\":\"*.googleapis.com\"}]},\"properties\":{\"allowlist\":{\"description\":\"List of allowed domains and their configurations. Set to `\\\"disabled\\\"`\\nto block all network egress.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/EgressRule\"},\"type\":\"array\"},{\"enum\":[\"disabled\"],\"title\":\"Disabled\",\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Network Allowlist\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"Function\":{\"description\":\"A tool that can be used by the model.\",\"properties\":{\"description\":{\"description\":\"A description of the function.\",\"type\":\"string\"},\"name\":{\"description\":\"The name of the function.\",\"type\":\"string\"},\"parameters\":{\"description\":\"The JSON Schema for the function's parameters.\"},\"type\":{\"const\":\"function\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Function\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearch\":{\"description\":\"A tool that can be used by the model to search Google.\",\"properties\":{\"search_types\":{\"description\":\"The types of search grounding to enable.\",\"items\":{\"enum\":[\"web_search\",\"image_search\",\"enterprise_web_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Setting this field enables web search. Only text results are returned.\",\"Setting this field enables image search. Image bytes are returned.\",\"Setting this field enables enterprise web search.\"]},\"type\":\"array\"},\"type\":{\"const\":\"google_search\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"McpServer\":{\"description\":\"A MCPServer is a server that can be called by the model to perform actions.\",\"properties\":{\"allowed_tools\":{\"description\":\"The allowed tools.\",\"items\":{\"$ref\":\"#/$defs/AllowedTools\"},\"type\":\"array\"},\"headers\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"Optional: Fields for authentication headers, timeouts, etc., if needed.\",\"type\":\"object\"},\"name\":{\"description\":\"The name of the MCPServer.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server\"},\"url\":{\"description\":\"The full URL for the MCPServer endpoint.\\nExample: \\\"https://api.example.com/mcp\\\"\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServer\"},\"Source\":{\"description\":\"A source to be mounted into the environment.\",\"properties\":{\"content\":{\"description\":\"The inline content if `type` is `INLINE`.\",\"type\":\"string\"},\"encoding\":{\"description\":\"Optional encoding for inline content (e.g. `base64`).\",\"type\":\"string\"},\"source\":{\"description\":\"The source of the environment.\\nFor Cloud Storage, this is the Cloud Storage path.\\nFor GitHub, this is the GitHub path.\",\"type\":\"string\"},\"target\":{\"description\":\"Where the source should appear in the environment.\",\"type\":\"string\"},\"type\":{\"enum\":[\"gcs\",\"inline\",\"repository\",\"skill_registry\"],\"type\":\"string\",\"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://).\",\"A skill resource from the Skill Registry Service.\\nSkill: projects/{project}/locations/{location}/skills/{skill}\\nSkillRevision:\\nprojects/{project}/locations/{location}/skills/{skill}/revisions/{revision}\\nSupport mounting all skills under a project:\\nprojects/{project}/locations/{location}/skills.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ToolChoiceType\":{\"enum\":[\"auto\",\"any\",\"none\",\"validated\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Auto tool choice.\",\"Any tool choice.\",\"No tool choice.\",\"Validated tool choice.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ToolChoiceType\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"UrlContext\":{\"description\":\"A tool that can be used by the model to fetch URL context.\",\"properties\":{\"type\":{\"const\":\"url_context\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContext\"\x7d\x7d,\"$ref\":\"#/$defs/Agent\"}", "CreateCredential": "{\"$defs\":{\"CredentialCreateParams\":{\"description\":\"Represents the fields of a Credential provided on creation.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentVariableConfig\"},{\"$ref\":\"#/$defs/HttpBearerConfig\"},{\"$ref\":\"#/$defs/OAuth2Config\"}],\"x-speakeasy-exports\":[{\"group\":\"credentials\",\"name\":\"CredentialCreateParams\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"credentials\"},\"EnvironmentVariableConfig\":{\"description\":\"Configuration for environment variable credentials.\",\"properties\":{\"id\":{\"description\":\"Required. Unique identifier for the credential.\",\"type\":\"string\"},\"injection_location\":{\"description\":\"Required. Locations where the environment variable can be injected in\\noutgoing HTTP requests. Must contain at least one location.\\nAccepts either a single location (e.g. \\\"header\\\") or an array of locations.\",\"oneOf\":[{\"$ref\":\"#/$defs/InjectionLocation\"},{\"items\":{\"$ref\":\"#/$defs/InjectionLocation\"},\"type\":\"array\"}]},\"trusted_domains\":{\"description\":\"Optional. List of domains allowed to receive this environment variable\\nvalue in HTTP requests.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"type\":{\"const\":\"environment_variable\"},\"value\":{\"description\":\"Required. Input only. Secret value of the environment variable. Write-only; never\\nreturned in responses.\",\"type\":\"string\",\"writeOnly\":true\x7d\x7d,\"required\":[\"id\",\"injection_location\",\"type\",\"value\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"credentials\",\"name\":\"EnvironmentVariableConfig\"}],\"x-speakeasy-model-namespace\":\"credentials\"},\"HttpBearerConfig\":{\"description\":\"Configuration for HTTP Bearer token credentials.\",\"properties\":{\"header_name\":{\"description\":\"Optional. Header name to inject the token into. Defaults to\\n'Authorization'.\",\"type\":\"string\"},\"id\":{\"description\":\"Required. Unique identifier for the credential.\",\"type\":\"string\"},\"prefix\":{\"description\":\"Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\\nfor no prefix.\",\"type\":\"string\"},\"token\":{\"description\":\"Required. Input only. The static bearer token. Write-only; never returned in responses.\",\"type\":\"string\",\"writeOnly\":true},\"type\":{\"const\":\"bearer_token\"\x7d\x7d,\"required\":[\"id\",\"token\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"credentials\",\"name\":\"HttpBearerConfig\"}],\"x-speakeasy-model-namespace\":\"credentials\"},\"InjectionLocation\":{\"enum\":[\"header\",\"query\",\"body\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Injected into HTTP request headers.\",\"Injected into HTTP URL query parameters.\",\"Injected into HTTP request body.\"],\"x-speakeasy-exports\":[{\"group\":\"credentials\",\"name\":\"InjectionLocation\"}],\"x-speakeasy-model-namespace\":\"credentials\"},\"OAuth2Config\":{\"description\":\"Configuration for OAuth2 credentials with automatic token refresh.\",\"properties\":{\"client_id\":{\"description\":\"Required. OAuth2 client ID.\",\"type\":\"string\"},\"client_secret\":{\"description\":\"Required. Input only. OAuth2 client secret. Write-only; never returned in responses.\",\"type\":\"string\",\"writeOnly\":true},\"id\":{\"description\":\"Required. Unique identifier for the credential.\",\"type\":\"string\"},\"refresh_token\":{\"description\":\"Required. Input only. OAuth2 refresh token. Write-only; never returned in responses.\",\"type\":\"string\",\"writeOnly\":true},\"scopes\":{\"description\":\"Optional. List of OAuth2 scopes.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"token_url\":{\"description\":\"Required. OAuth2 token endpoint URL for refreshing access tokens.\",\"type\":\"string\"},\"type\":{\"const\":\"oauth2\"\x7d\x7d,\"required\":[\"client_id\",\"client_secret\",\"id\",\"refresh_token\",\"token_url\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"credentials\",\"name\":\"OAuth2Config\"}],\"x-speakeasy-model-namespace\":\"credentials\"\x7d\x7d,\"$ref\":\"#/$defs/CredentialCreateParams\"}", "CreateEnvironment": "{\"$defs\":{\"CreateEnvironmentRequest\":{\"description\":\"Request for `CreateEnvironment`.\",\"properties\":{\"from_environment\":{\"description\":\"Optional. The source environment to copy/fork from.\\nFormat: `environments/{environment_id}` or `{environment_id}`.\\nWhen specified, `sources` and `env` must be empty.\",\"type\":\"string\"},\"network\":{\"description\":\"Network configuration for the environment.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentNetworkEgressAllowlist\"},{\"enum\":[\"disabled\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]},\"sources\":{\"description\":\"Sources to be mounted into the environment.\",\"items\":{\"$ref\":\"#/$defs/Source\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"environments\",\"name\":\"CreateEnvironmentRequest\"}],\"x-speakeasy-model-namespace\":\"environments\"},\"EgressRule\":{\"description\":\"A single domain allowlist rule with optional header injection.\",\"properties\":{\"credential\":{\"description\":\"Optional. Reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"domain\":{\"description\":\"Domain to allow outbound requests to. Supports wildcards (e.g.\\n'*.googleapis.com'). Use '*' to allow all domains.\",\"type\":\"string\"},\"transform\":{\"description\":\"Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.\",\"oneOf\":[{\"description\":\"A list of headers to inject.\",\"items\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header to inject.\",\"type\":\"object\"},\"type\":\"array\"},{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header injection mapping, e.g., {\\\"Authorization\\\": \\\"Bearer token\\\"}.\",\"type\":\"object\"}]\x7d\x7d,\"required\":[\"domain\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"AllowlistEntry\"},\"EnvironmentNetworkEgressAllowlist\":{\"description\":\"Network egress configuration for the environment.\",\"example\":{\"allowlist\":[{\"domain\":\"github.com\",\"transform\":[{\"Authorization\":\"Bearer your-token\"}]},{\"domain\":\"*.googleapis.com\"}]},\"properties\":{\"allowlist\":{\"description\":\"List of allowed domains and their configurations. Set to `\\\"disabled\\\"`\\nto block all network egress.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/EgressRule\"},\"type\":\"array\"},{\"enum\":[\"disabled\"],\"title\":\"Disabled\",\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Network Allowlist\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"Source\":{\"description\":\"A source to be mounted into the environment.\",\"properties\":{\"content\":{\"description\":\"The inline content if `type` is `INLINE`.\",\"type\":\"string\"},\"encoding\":{\"description\":\"Optional encoding for inline content (e.g. `base64`).\",\"type\":\"string\"},\"source\":{\"description\":\"The source of the environment.\\nFor Cloud Storage, this is the Cloud Storage path.\\nFor GitHub, this is the GitHub path.\",\"type\":\"string\"},\"target\":{\"description\":\"Where the source should appear in the environment.\",\"type\":\"string\"},\"type\":{\"enum\":[\"gcs\",\"inline\",\"repository\",\"skill_registry\"],\"type\":\"string\",\"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://).\",\"A skill resource from the Skill Registry Service.\\nSkill: projects/{project}/locations/{location}/skills/{skill}\\nSkillRevision:\\nprojects/{project}/locations/{location}/skills/{skill}/revisions/{revision}\\nSupport mounting all skills under a project:\\nprojects/{project}/locations/{location}/skills.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"\x7d\x7d,\"$ref\":\"#/$defs/CreateEnvironmentRequest\"}", - "CreateInteraction": "{\"$defs\":{\"AgentInteraction\":{\"description\":\"Interaction for generating the completion using agents.\",\"properties\":{\"agent\":{\"$ref\":\"#/$defs/AgentOption\",\"description\":\"The name of the `Agent` used for generating the interaction.\"},\"agent_config\":{\"description\":\"Configuration parameters for the agent interaction.\",\"oneOf\":[{\"$ref\":\"#/$defs/AntigravityAgentConfig\"},{\"$ref\":\"#/$defs/CodeMenderAgentConfig\"},{\"$ref\":\"#/$defs/DeepResearchAgentConfig\"},{\"$ref\":\"#/$defs/DynamicAgentConfig\"}],\"x-speakeasy-unknown-values\":\"disallow\"},\"background\":{\"description\":\"Input only. Whether to run the model interaction in the background.\",\"type\":\"boolean\"},\"continuation_token\":{\"description\":\"Opaque token to resume a long decode. Output: set when status is\\nINCOMPLETE and decoding can be resumed. Input: pass the latest token\\nback unchanged in CreateInteraction to continue decoding.\",\"format\":\"byte\",\"type\":\"string\"},\"environment\":{\"description\":\"The environment configuration for the interaction. Can be an object\\nspecifying remote environment sources or a string referencing an existing\\nenvironment ID.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentConfig\"},{\"type\":\"string\"}],\"x-speakeasy-unknown-values\":\"disallow\"},\"input\":{\"$ref\":\"#/$defs/InteractionsInput\"},\"labels\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"The labels with user-defined metadata for the request.\\n\\nLabel keys and values can be no longer than 63 characters\\n(Unicode codepoints) and can only contain lowercase letters, numeric\\ncharacters, underscores, and dashes. International characters are allowed.\\nLabel values are optional. Label keys must start with a letter.\",\"type\":\"object\"},\"previous_interaction_id\":{\"description\":\"The ID of the previous interaction, if any.\",\"type\":\"string\"},\"response_format\":{\"description\":\"Enforces that the generated response is a JSON object that complies with\\nthe JSON schema specified in this field.\",\"oneOf\":[{\"$ref\":\"#/$defs/ResponseFormat\"},{\"items\":{\"$ref\":\"#/$defs/ResponseFormat\"},\"title\":\"ResponseFormatList\",\"type\":\"array\"}]},\"response_mime_type\":{\"deprecated\":true,\"description\":\"The mime type of the response. This is required if response_format is set.\",\"type\":\"string\"},\"response_modalities\":{\"deprecated\":true,\"description\":\"The requested modalities of the response (TEXT, IMAGE, AUDIO).\",\"items\":{\"$ref\":\"#/$defs/ResponseModality\"},\"type\":\"array\"},\"safety_settings\":{\"description\":\"Safety settings for the interaction.\",\"items\":{\"$ref\":\"#/$defs/SafetySetting\"},\"type\":\"array\"},\"service_tier\":{\"$ref\":\"#/$defs/ServiceTier\",\"description\":\"The service tier for the interaction.\"},\"store\":{\"description\":\"Input only. Whether to store the response and request for later retrieval.\",\"type\":\"boolean\"},\"stream\":{\"default\":true,\"description\":\"Input only. Whether the interaction is streamed as server-sent events. Defaults to true; set false to receive one complete interaction.\",\"type\":\"boolean\"},\"system_instruction\":{\"description\":\"System instruction for the interaction.\",\"type\":\"string\"},\"tools\":{\"description\":\"A list of tool declarations the model may call during interaction.\",\"items\":{\"$ref\":\"#/$defs/Tool\"},\"type\":\"array\"},\"webhook_config\":{\"$ref\":\"#/$defs/WebhookConfig\",\"description\":\"Optional. Webhook configuration for receiving notifications when the\\ninteraction completes.\"\x7d\x7d,\"required\":[\"agent\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CreateAgentInteractionParamsNonStreaming\",\"representation\":\"input\"},{\"group\":\"interactions\",\"name\":\"CreateAgentInteractionParamsStreaming\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"CreateAgentInteraction\"},\"AgentOption\":{\"description\":\"The agent to interact with.\",\"enum\":[\"deep-research-pro-preview-12-2025\",\"deep-research-preview-04-2026\",\"deep-research-max-preview-04-2026\",\"antigravity-preview-05-2026\"],\"title\":\"Agent\",\"type\":\"string\",\"x-speakeasy-enum-descriptions\":[\"Gemini Deep Research Agent\",\"Gemini Deep Research Agent\",\"Gemini Deep Research Max Agent\",\"Use the Antigravity managed agent to perform multi-step tasks that require reasoning, file operations, and tool use.\"],\"x-speakeasy-enum-format\":\"union\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"allow\"},\"AllowedTools\":{\"description\":\"The configuration for allowed tools.\",\"properties\":{\"mode\":{\"$ref\":\"#/$defs/ToolChoiceType\",\"description\":\"The mode of the tool choice.\"},\"tools\":{\"description\":\"The names of the allowed tools.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AllowedTools\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"Annotation\":{\"description\":\"Citation information for model-generated content.\",\"oneOf\":[{\"$ref\":\"#/$defs/FileCitation\"},{\"$ref\":\"#/$defs/PlaceCitation\"},{\"$ref\":\"#/$defs/SpeechAnnotation\"},{\"$ref\":\"#/$defs/UrlCitation\"},{\"$ref\":\"#/$defs/WordInfo\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Annotation\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"AntigravityAgentConfig\":{\"description\":\"Configuration for the Antigravity agent runtime.\\nProvides server-side control over the agent's execution environment\\nand tool configuration.\",\"properties\":{\"max_total_tokens\":{\"description\":\"Max total tokens for the agent run.\",\"format\":\"int64\",\"type\":\"string\"},\"model\":{\"description\":\"The model to use for agent reasoning.\",\"type\":\"string\"},\"type\":{\"const\":\"antigravity\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AntigravityAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"AudioContent\":{\"description\":\"An audio content block.\",\"example\":{\"data\":\"BASE64_ENCODED_AUDIO\",\"mime_type\":\"audio/wav\",\"type\":\"audio\"},\"properties\":{\"channels\":{\"description\":\"The number of audio channels.\",\"format\":\"int32\",\"type\":\"integer\"},\"data\":{\"description\":\"The audio content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the audio.\",\"enum\":[\"audio/wav\",\"audio/mp3\",\"audio/aiff\",\"audio/aac\",\"audio/ogg\",\"audio/flac\",\"audio/mpeg\",\"audio/m4a\",\"audio/l16\",\"audio/opus\",\"audio/alaw\",\"audio/mulaw\",\"audio/webm\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"WAV audio format\",\"MP3 audio format\",\"AIFF audio format\",\"AAC audio format\",\"OGG audio format\",\"FLAC audio format\",\"MPEG audio format\",\"M4A audio format\",\"L16 audio format\",\"OPUS audio format\",\"ALAW audio format\",\"MULAW audio format\",\"WebM audio format\"]},\"sample_rate\":{\"description\":\"The sample rate of the audio.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"audio\"},\"uri\":{\"description\":\"The URI of the audio.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Audio\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AudioContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"AudioResponseFormat\":{\"description\":\"Configuration for audio output format.\",\"example\":{\"sample_rate\":24000,\"type\":\"audio\"},\"properties\":{\"bit_rate\":{\"description\":\"Bit rate in bits per second (bps). Only applicable for compressed formats\\n(MP3, Opus).\",\"format\":\"int32\",\"type\":\"integer\"},\"delivery\":{\"description\":\"The delivery mode for the audio output.\",\"enum\":[\"inline\",\"uri\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Audio data is returned inline in the response.\",\"Audio data is returned as a URI.\"]},\"mime_type\":{\"description\":\"The MIME type of the audio output.\",\"enum\":[\"audio/mp3\",\"audio/ogg_opus\",\"audio/l16\",\"audio/wav\",\"audio/alaw\",\"audio/mulaw\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"MP3 audio format.\",\"OGG Opus audio format.\",\"Raw PCM (L16) audio format.\",\"WAV audio format.\",\"A-law audio format.\",\"Mu-law audio format.\"]},\"sample_rate\":{\"description\":\"Sample rate in Hz.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"audio\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Audio Output\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AudioResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeExecution\":{\"description\":\"A tool that can be used by the model to execute code.\",\"properties\":{\"type\":{\"const\":\"code_execution\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeExecutionCallStep\":{\"description\":\"Code execution call step.\",\"example\":{\"arguments\":{\"code\":\"print(sum(range(1, 11)))\",\"language\":\"python\"},\"id\":\"code_call_71021\",\"type\":\"code_execution_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/CodeExecutionCallStepArguments\",\"description\":\"Required. The arguments to pass to the code execution.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"code_execution_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"CodeExecutionCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeExecutionCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeExecutionCallStepArguments\":{\"description\":\"The arguments to pass to the code execution.\",\"properties\":{\"code\":{\"description\":\"The code to be executed.\",\"type\":\"string\"},\"language\":{\"description\":\"Programming language of the `code`.\",\"enum\":[\"python\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Python \\u003e= 3.10, with numpy and simpy available.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeExecutionCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"CodeExecutionCallArguments\"},\"CodeExecutionResultStep\":{\"description\":\"Code execution result step.\",\"example\":{\"call_id\":\"code_call_71021\",\"result\":\"55\\n\",\"type\":\"code_execution_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the code execution resulted in an error.\",\"type\":\"boolean\"},\"result\":{\"description\":\"Required. The output of the code execution.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"code_execution_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"CodeExecutionResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeExecutionResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeMenderAgentConfig\":{\"description\":\"Configuration for the CodeMender agent.\",\"properties\":{\"find_request\":{\"$ref\":\"#/$defs/FindRequest\",\"description\":\"Parameters for finding vulnerabilities.\"},\"fix_request\":{\"$ref\":\"#/$defs/FixRequest\",\"description\":\"Parameters for fixing vulnerabilities.\"},\"model\":{\"description\":\"The name of the model to use for the CodeMender agent. One\\nCodeMender session will only use one model.\",\"type\":\"string\"},\"session_config\":{\"$ref\":\"#/$defs/SessionConfig\",\"description\":\"Optional session-specific configurations to override default agent\\nbehavior.\"},\"session_id\":{\"description\":\"Parameter for grouping multiple interactions that belong to\\nthe same CodeMender session.\",\"type\":\"string\"},\"type\":{\"const\":\"code-mender\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeMenderAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"ComputerUse\":{\"description\":\"A tool that can be used by the model to interact with the computer.\",\"properties\":{\"disabled_safety_policies\":{\"description\":\"Optional. Disabled safety policies for computer use.\",\"items\":{\"enum\":[\"financial_transactions\",\"sensitive_data_modification\",\"communication_tool\",\"account_creation\",\"data_modification\",\"user_consent_management\",\"legal_terms_and_agreements\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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\":\"array\"},\"enable_prompt_injection_detection\":{\"description\":\"Whether enable the prompt injection detection check on computer-use\\nrequest.\",\"type\":\"boolean\"},\"environment\":{\"description\":\"The environment being operated.\",\"enum\":[\"browser\",\"mobile\",\"desktop\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Operates in a web browser.\",\"Operates in a mobile environment.\",\"Operates in a desktop environment.\"]},\"excluded_predefined_functions\":{\"description\":\"The list of predefined functions that are excluded from the model call.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"type\":{\"const\":\"computer_use\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Content\":{\"description\":\"The content of the response.\",\"oneOf\":[{\"$ref\":\"#/$defs/AudioContent\"},{\"$ref\":\"#/$defs/DocumentContent\"},{\"$ref\":\"#/$defs/ImageContent\"},{\"$ref\":\"#/$defs/TextContent\"},{\"$ref\":\"#/$defs/VideoContent\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Content\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"DeepResearchAgentConfig\":{\"description\":\"Configuration for the Deep Research agent.\",\"properties\":{\"collaborative_planning\":{\"description\":\"Enables human-in-the-loop planning for the Deep Research agent. If set to\\ntrue, the Deep Research agent will provide a research plan in its response.\\nThe agent will then proceed only if the user confirms the plan in the next\\nturn.\",\"type\":\"boolean\"},\"enable_bigquery_tool\":{\"description\":\"Enables bigquery tool for the Deep Research agent.\",\"type\":\"boolean\"},\"thinking_summaries\":{\"$ref\":\"#/$defs/ThinkingSummaries\",\"description\":\"Whether to include thought summaries in the response.\"},\"type\":{\"const\":\"deep-research\"},\"visualization\":{\"description\":\"Whether to include visualizations in the response.\",\"enum\":[\"off\",\"auto\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Do not include visualizations.\",\"Automatically include visualizations.\"]\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"DeepResearchAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"DocumentContent\":{\"description\":\"A document content block.\",\"example\":{\"data\":\"BASE64_ENCODED_DOCUMENT\",\"mime_type\":\"application/pdf\",\"type\":\"document\"},\"properties\":{\"data\":{\"description\":\"The document content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the document.\",\"enum\":[\"application/pdf\",\"text/csv\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"PDF document format\",\"CSV document format\"]},\"type\":{\"const\":\"document\"},\"uri\":{\"description\":\"The URI of the document.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Document\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"DocumentContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"DynamicAgentConfig\":{\"additionalProperties\":true,\"description\":\"Configuration for dynamic agents.\",\"properties\":{\"type\":{\"const\":\"dynamic\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"DynamicAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"EgressRule\":{\"description\":\"A single domain allowlist rule with optional header injection.\",\"properties\":{\"credential\":{\"description\":\"Optional. Reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"domain\":{\"description\":\"Domain to allow outbound requests to. Supports wildcards (e.g.\\n'*.googleapis.com'). Use '*' to allow all domains.\",\"type\":\"string\"},\"transform\":{\"description\":\"Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.\",\"oneOf\":[{\"description\":\"A list of headers to inject.\",\"items\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header to inject.\",\"type\":\"object\"},\"type\":\"array\"},{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header injection mapping, e.g., {\\\"Authorization\\\": \\\"Bearer token\\\"}.\",\"type\":\"object\"}]\x7d\x7d,\"required\":[\"domain\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"AllowlistEntry\"},\"EnvVar\":{\"description\":\"An environment variable to set in the execution environment.\",\"properties\":{\"credential\":{\"description\":\"Optional reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"value\":{\"description\":\"Direct string value for plain environment variables.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"EnvironmentConfig\":{\"description\":\"Configuration for a custom environment.\",\"examples\":[{\"sources\":[{\"content\":\"You are a data analyst. Always include visualizations and export results as PDF.\",\"target\":\".agents/AGENTS.md\",\"type\":\"inline\"},{\"content\":\"---\\nname: slide-maker\\ndescription: Create HTML slide decks\\n---\\n# Slide Maker\\n\\nWhen asked to create a presentation:\\n1. Analyze the input data\\n2. Create an HTML slide deck with reveal.js\\n3. Save to /workspace/output/slides.html\",\"target\":\".agents/skills/slide-maker/SKILL.md\",\"type\":\"inline\"}],\"type\":\"remote\"},{\"sources\":[{\"source\":\"https://github.com/my-org/my-skills.git\",\"target\":\".agents/skills\",\"type\":\"repository\"},{\"source\":\"gs://my-bucket/my-folder\",\"target\":\"/workspace/data\",\"type\":\"gcs\"}],\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"pypi.org\"},{\"domain\":\"*.github.com\"}]},\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"api.github.com\",\"transform\":{\"Authorization\":\"Bearer YOUR_GITHUB_TOKEN\"\x7d\x7d]},\"type\":\"remote\"}],\"properties\":{\"env\":{\"description\":\"Environment variables to set in the sandbox environment.\",\"oneOf\":[{\"additionalProperties\":{\"$ref\":\"#/$defs/EnvVar\"},\"type\":\"object\"},{\"type\":\"string\"}]},\"environment_id\":{\"description\":\"Optional. The environment ID for the interaction. If specified, the request will\\nupdate the existing environment instead of creating a new one.\",\"type\":\"string\"},\"network\":{\"description\":\"Network configuration for the environment.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentNetworkEgressAllowlist\"},{\"enum\":[\"disabled\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]},\"sources\":{\"items\":{\"$ref\":\"#/$defs/Source\"},\"type\":\"array\"},\"type\":{\"const\":\"remote\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Inline Sources\",\"External Sources\",\"Network Allowlist\",\"Proxy Credentials\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Environment\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"Environment\",\"x-speakeasy-unknown-values\":\"disallow\"},\"EnvironmentNetworkEgressAllowlist\":{\"description\":\"Network egress configuration for the environment.\",\"example\":{\"allowlist\":[{\"domain\":\"github.com\",\"transform\":[{\"Authorization\":\"Bearer your-token\"}]},{\"domain\":\"*.googleapis.com\"}]},\"properties\":{\"allowlist\":{\"description\":\"List of allowed domains and their configurations. Set to `\\\"disabled\\\"`\\nto block all network egress.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/EgressRule\"},\"type\":\"array\"},{\"enum\":[\"disabled\"],\"title\":\"Disabled\",\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Network Allowlist\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"ExaAISearchConfig\":{\"description\":\"Used to specify configuration for ExaAISearch.\",\"properties\":{\"api_key\":{\"description\":\"Required. The API key for ExaAiSearch.\",\"type\":\"string\"},\"custom_config\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Optional. This field can be used to pass any parameter from the Exa.ai Search API.\",\"type\":\"object\"\x7d\x7d,\"required\":[\"api_key\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FileCitation\":{\"description\":\"A file citation annotation.\",\"properties\":{\"custom_metadata\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"User provided metadata about the retrieved context.\",\"type\":\"object\"},\"document_uri\":{\"description\":\"The URI of the file.\",\"type\":\"string\"},\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"file_name\":{\"description\":\"The name of the file.\",\"type\":\"string\"},\"media_id\":{\"description\":\"Media ID in-case of image citations, if applicable.\",\"type\":\"string\"},\"page_number\":{\"description\":\"Page number of the cited document, if applicable.\",\"format\":\"int32\",\"type\":\"integer\"},\"source\":{\"description\":\"Source attributed for a portion of the text.\",\"type\":\"string\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"file_citation\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FileCitation\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FileContent\":{\"description\":\"Content of a single file in the codebase.\",\"properties\":{\"content\":{\"description\":\"The UTF-8 encoded text content of the file.\",\"type\":\"string\"},\"path\":{\"description\":\"The relative path of the file from the project root.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FileSearch\":{\"description\":\"A tool that can be used by the model to search files.\",\"properties\":{\"file_search_store_names\":{\"description\":\"The file search store names to search.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"metadata_filter\":{\"description\":\"Metadata filter to apply to the semantic retrieval documents and chunks.\",\"type\":\"string\"},\"top_k\":{\"description\":\"The number of semantic retrieval chunks to retrieve.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"file_search\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FileSearchCallStep\":{\"description\":\"File Search call step.\",\"example\":{\"id\":\"file_call_88192\",\"type\":\"file_search_call\"},\"properties\":{\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"file_search_call\"\x7d\x7d,\"required\":[\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FileSearchCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FileSearchCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FileSearchResultStep\":{\"description\":\"File Search result step.\",\"example\":{\"call_id\":\"file_call_88192\",\"type\":\"file_search_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"file_search_result\"\x7d\x7d,\"required\":[\"call_id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FileSearchResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FileSearchResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"Filter\":{\"description\":\"Config for filters.\",\"properties\":{\"metadata_filter\":{\"description\":\"Optional. String for metadata filtering.\",\"type\":\"string\"},\"vector_distance_threshold\":{\"description\":\"Optional. Only returns contexts with vector distance smaller than the\\nthreshold.\",\"format\":\"double\",\"type\":\"number\"},\"vector_similarity_threshold\":{\"description\":\"Optional. Only returns contexts with vector similarity larger than the\\nthreshold.\",\"format\":\"double\",\"type\":\"number\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FindRequest\":{\"description\":\"Request parameters specific to FIND sessions, used for discovering\\nvulnerabilities in a codebase.\",\"properties\":{\"description\":{\"description\":\"Additional context or custom instructions provided by the user to guide\\nthe vulnerability analysis.\",\"type\":\"string\"},\"finding_id\":{\"description\":\"The identifier of a specific finding to verify. This is primarily used in\\nVERIFY mode to focus the agent's execution-based validation on a single\\nvulnerability.\",\"type\":\"string\"},\"mode\":{\"description\":\"The mode of the find session.\",\"enum\":[\"scan\",\"verify\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Fast scan using only the initial classifier.\",\"Performs classification followed by detailed investigation.\"]},\"source_files\":{\"description\":\"A list of source files to provide as context for the scan.\",\"items\":{\"$ref\":\"#/$defs/FileContent\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FixRequest\":{\"description\":\"Request parameters specific to FIX sessions, used for generating and\\nvalidating security patches.\",\"properties\":{\"description\":{\"description\":\"Additional context or custom instructions provided by the user to guide\\nthe patch generation process.\",\"type\":\"string\"},\"finding_id\":{\"description\":\"The identifier of the specific security finding to be remediated. This ID\\nmaps to a previously discovered vulnerability.\",\"type\":\"string\"},\"source_files\":{\"description\":\"A list of source files providing context for the remediation. These files\\nare typically the ones containing the identified vulnerability.\",\"items\":{\"$ref\":\"#/$defs/FileContent\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Function\":{\"description\":\"A tool that can be used by the model.\",\"properties\":{\"description\":{\"description\":\"A description of the function.\",\"type\":\"string\"},\"name\":{\"description\":\"The name of the function.\",\"type\":\"string\"},\"parameters\":{\"description\":\"The JSON Schema for the function's parameters.\"},\"type\":{\"const\":\"function\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Function\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FunctionCallStep\":{\"description\":\"A function tool call step.\",\"example\":{\"arguments\":{\"location\":\"Boston, MA\"},\"id\":\"call_98231\",\"name\":\"get_weather\",\"type\":\"function_call\"},\"properties\":{\"arguments\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Required. The arguments to pass to the function.\",\"type\":\"object\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"name\":{\"description\":\"Required. The name of the tool to call.\",\"type\":\"string\"},\"type\":{\"const\":\"function_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"name\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FunctionCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FunctionCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FunctionResultStep\":{\"description\":\"Result of a function tool call.\",\"example\":{\"call_id\":\"call_98231\",\"name\":\"get_weather\",\"result\":[{\"text\":\"{\\\"weather\\\":\\\"sunny\\\"}\",\"type\":\"text\"}],\"type\":\"function_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the tool call resulted in an error.\",\"type\":\"boolean\"},\"name\":{\"description\":\"The name of the tool that was called.\",\"type\":\"string\"},\"result\":{\"description\":\"Required. The result of the tool call.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/FunctionResultSubContent\"},\"type\":\"array\"},{\"additionalProperties\":true,\"type\":\"object\"},{\"type\":\"string\"}]},\"type\":{\"const\":\"function_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FunctionResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FunctionResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FunctionResultSubContent\":{\"oneOf\":[{\"$ref\":\"#/$defs/ImageContent\"},{\"$ref\":\"#/$defs/TextContent\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"FunctionResultSubcontent\"},\"GenerationConfig\":{\"description\":\"Configuration parameters for model interactions.\",\"properties\":{\"image_config\":{\"$ref\":\"#/$defs/ImageConfig\",\"deprecated\":true,\"description\":\"Configuration for image interaction.\"},\"max_output_tokens\":{\"description\":\"The maximum number of tokens to include in the response.\",\"format\":\"int32\",\"type\":\"integer\"},\"seed\":{\"description\":\"Seed used in decoding for reproducibility.\",\"format\":\"int32\",\"type\":\"integer\"},\"speech_config\":{\"description\":\"Optional. Speech and multi-speaker configuration.\",\"oneOf\":[{\"$ref\":\"#/$defs/SpeakerConfig\"},{\"items\":{\"$ref\":\"#/$defs/SpeechConfig\"},\"type\":\"array\"}]},\"stop_sequences\":{\"description\":\"A list of character sequences that will stop output interaction.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"temperature\":{\"deprecated\":true,\"description\":\"Controls the randomness of the output.\",\"format\":\"float\",\"type\":\"number\"},\"thinking_level\":{\"$ref\":\"#/$defs/ThinkingLevel\",\"description\":\"The level of thought tokens that the model should generate.\"},\"thinking_summaries\":{\"$ref\":\"#/$defs/ThinkingSummaries\",\"description\":\"Whether to include thought summaries in the response.\"},\"tool_choice\":{\"description\":\"The tool choice configuration.\",\"oneOf\":[{\"$ref\":\"#/$defs/ToolChoiceConfig\"},{\"$ref\":\"#/$defs/ToolChoiceType\"}]},\"top_p\":{\"deprecated\":true,\"description\":\"The maximum cumulative probability of tokens to consider when sampling.\",\"format\":\"float\",\"type\":\"number\"},\"transcription_config\":{\"$ref\":\"#/$defs/TranscriptionConfig\",\"description\":\"Optional. Configuration for speech recognition (transcription). If present, ASR is\\nenabled.\"},\"video_config\":{\"$ref\":\"#/$defs/VideoConfig\",\"description\":\"Configuration for video generation.\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GenerationConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMaps\":{\"description\":\"A tool that can be used by the model to call Google Maps.\",\"properties\":{\"enable_widget\":{\"description\":\"Whether to return a widget context token in the tool call result of the\\nresponse.\",\"type\":\"boolean\"},\"latitude\":{\"description\":\"The latitude of the user's location.\",\"format\":\"double\",\"type\":\"number\"},\"longitude\":{\"description\":\"The longitude of the user's location.\",\"format\":\"double\",\"type\":\"number\"},\"type\":{\"const\":\"google_maps\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMapsCallStep\":{\"description\":\"Google Maps call step.\",\"example\":{\"arguments\":{\"queries\":[\"parks near San Francisco\"]},\"id\":\"maps_call_39201\",\"type\":\"google_maps_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/GoogleMapsCallStepArguments\",\"description\":\"The arguments to pass to the Google Maps tool.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_maps_call\"\x7d\x7d,\"required\":[\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleMapsCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMapsCallStepArguments\":{\"description\":\"The arguments to pass to the Google Maps tool.\",\"properties\":{\"queries\":{\"description\":\"The queries to be executed.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleMapsCallArguments\"},\"GoogleMapsResultItem\":{\"description\":\"The result of the Google Maps.\",\"properties\":{\"places\":{\"items\":{\"$ref\":\"#/$defs/GoogleMapsResultPlaces\"},\"type\":\"array\"},\"widget_context_token\":{\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsResult\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleMapsResult\"},\"GoogleMapsResultPlaces\":{\"properties\":{\"name\":{\"type\":\"string\"},\"place_id\":{\"type\":\"string\"},\"review_snippets\":{\"items\":{\"$ref\":\"#/$defs/ReviewSnippet\"},\"type\":\"array\"},\"url\":{\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMapsResultStep\":{\"description\":\"Google Maps result step.\",\"example\":{\"call_id\":\"maps_call_39201\",\"result\":[{\"places\":[{\"name\":\"Golden Gate Park\",\"place_id\":\"ChIJIQBpAG2ahYAR9R7bNdTLg8M\",\"url\":\"https://maps.google.com/?cid=12345\"}]}],\"type\":\"google_maps_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"result\":{\"items\":{\"$ref\":\"#/$defs/GoogleMapsResultItem\"},\"type\":\"array\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_maps_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleMapsResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearch\":{\"description\":\"A tool that can be used by the model to search Google.\",\"properties\":{\"search_types\":{\"description\":\"The types of search grounding to enable.\",\"items\":{\"enum\":[\"web_search\",\"image_search\",\"enterprise_web_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Setting this field enables web search. Only text results are returned.\",\"Setting this field enables image search. Image bytes are returned.\",\"Setting this field enables enterprise web search.\"]},\"type\":\"array\"},\"type\":{\"const\":\"google_search\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearchCallStep\":{\"description\":\"Google Search call step.\",\"example\":{\"arguments\":{\"queries\":[\"Who won the men's 100m in Paris 2024?\"]},\"id\":\"search_call_19201\",\"type\":\"google_search_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/GoogleSearchCallStepArguments\",\"description\":\"Required. The arguments to pass to Google Search.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"search_type\":{\"description\":\"The type of search grounding enabled.\",\"enum\":[\"web_search\",\"image_search\",\"enterprise_web_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Setting this field enables web search. Only text results are returned.\",\"Setting this field enables image search. Image bytes are returned.\",\"Setting this field enables enterprise web search.\"]},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_search_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleSearchCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearchCallStepArguments\":{\"description\":\"The arguments to pass to Google Search.\",\"properties\":{\"queries\":{\"description\":\"Web search queries for the following-up web search.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleSearchCallArguments\"},\"GoogleSearchResultItem\":{\"description\":\"The result of the Google Search.\",\"properties\":{\"search_suggestions\":{\"description\":\"Web content snippet that can be embedded in a web page or an app webview.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchResult\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleSearchResult\"},\"GoogleSearchResultStep\":{\"description\":\"Google Search result step.\",\"example\":{\"call_id\":\"search_call_19201\",\"result\":[{\"search_suggestions\":\"\\u003cdiv class=\\\"container\\\"\\u003e...\\u003c/div\\u003e\"}],\"type\":\"google_search_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the Google Search resulted in an error.\",\"type\":\"boolean\"},\"result\":{\"description\":\"Required. The results of the Google Search.\",\"items\":{\"$ref\":\"#/$defs/GoogleSearchResultItem\"},\"type\":\"array\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_search_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleSearchResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"HarmCategory\":{\"enum\":[\"hate_speech\",\"dangerous_content\",\"harassment\",\"sexually_explicit\",\"civic_integrity\",\"image_hate\",\"image_dangerous_content\",\"image_harassment\",\"image_sexually_explicit\",\"jailbreak\"],\"type\":\"string\",\"x-google-enum-deprecated\":[false,false,false,false,true,false,false,false,false,false],\"x-google-enum-descriptions\":[\"Content that promotes violence or incites hatred against individuals or\\ngroups based on certain attributes.\",\"Content that promotes, facilitates, or enables dangerous activities.\",\"Abusive, threatening, or content intended to bully, torment, or ridicule.\",\"Content that contains sexually explicit material.\",\"Deprecated: Election filter is not longer supported.\\nThe harm category is civic integrity.\",\"Images that contain hate speech.\",\"Images that contain dangerous content.\",\"Images that contain harassment.\",\"Images that contain sexually explicit content.\",\"Prompts designed to bypass safety filters.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"HarmCategory\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"HybridSearch\":{\"description\":\"Config for Hybrid Search.\",\"properties\":{\"alpha\":{\"description\":\"Optional. Alpha value controls the weight between dense and sparse vector search\\nresults.\",\"format\":\"float\",\"type\":\"number\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ImageConfig\":{\"deprecated\":true,\"description\":\"The configuration for image interaction.\",\"properties\":{\"aspect_ratio\":{\"description\":\"The aspect ratio of the image to generate. Supported aspect ratios: 1:1,\\n2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9.\\n\\nIf not specified, the model will choose a default aspect ratio based on any\\nreference images provided.\",\"enum\":[\"1:1\",\"2:3\",\"3:2\",\"3:4\",\"4:3\",\"4:5\",\"5:4\",\"9:16\",\"16:9\",\"21:9\",\"1:8\",\"8:1\",\"1:4\",\"4:1\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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.\"]},\"image_size\":{\"description\":\"Specifies the size of generated images. Supported values are `1K`, `2K`,\\n`4K`. If not specified, the model will use default value `1K`.\",\"enum\":[\"1K\",\"2K\",\"4K\",\"512\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"1K image size.\",\"2K image size.\",\"4K image size.\",\"512 image size.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ImageContent\":{\"description\":\"An image content block.\",\"example\":{\"data\":\"BASE64_ENCODED_IMAGE\",\"mime_type\":\"image/png\",\"type\":\"image\"},\"properties\":{\"data\":{\"description\":\"The image content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the image.\",\"enum\":[\"image/png\",\"image/jpeg\",\"image/webp\",\"image/heic\",\"image/heif\",\"image/gif\",\"image/bmp\",\"image/tiff\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"PNG image format\",\"JPEG image format\",\"WebP image format\",\"HEIC image format\",\"HEIF image format\",\"GIF image format\",\"BMP image format\",\"TIFF image format\"]},\"resolution\":{\"$ref\":\"#/$defs/MediaResolution\",\"description\":\"The resolution of the media.\"},\"type\":{\"const\":\"image\"},\"uri\":{\"description\":\"The URI of the image.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Image\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ImageContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ImageResponseFormat\":{\"description\":\"Configuration for image output format.\",\"example\":{\"aspect_ratio\":\"16:9\",\"image_size\":\"1K\",\"mime_type\":\"image/jpeg\",\"type\":\"image\"},\"properties\":{\"aspect_ratio\":{\"description\":\"The aspect ratio for the image output.\",\"enum\":[\"1:1\",\"2:3\",\"3:2\",\"3:4\",\"4:3\",\"4:5\",\"5:4\",\"9:16\",\"16:9\",\"21:9\",\"1:8\",\"8:1\",\"1:4\",\"4:1\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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.\"]},\"delivery\":{\"description\":\"The delivery mode for the image output.\",\"enum\":[\"inline\",\"uri\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Image data is returned inline in the response.\",\"Image data is returned as a URI.\"]},\"image_size\":{\"description\":\"The size of the image output.\",\"enum\":[\"512\",\"1K\",\"2K\",\"4K\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"512px image size.\",\"1K image size.\",\"2K image size.\",\"4K image size.\"]},\"mime_type\":{\"description\":\"The MIME type of the image output.\",\"enum\":[\"image/jpeg\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"JPEG image format.\"]},\"type\":{\"const\":\"image\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Image Output\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ImageResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"InteractionsInput\":{\"description\":\"The input for the interaction.\",\"oneOf\":[{\"$ref\":\"#/$defs/Content\"},{\"items\":{\"$ref\":\"#/$defs/Step\"},\"title\":\"StepList\",\"type\":\"array\"},{\"items\":{\"$ref\":\"#/$defs/Content\"},\"title\":\"ContentList\",\"type\":\"array\"},{\"type\":\"string\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"McpServer\":{\"description\":\"A MCPServer is a server that can be called by the model to perform actions.\",\"properties\":{\"allowed_tools\":{\"description\":\"The allowed tools.\",\"items\":{\"$ref\":\"#/$defs/AllowedTools\"},\"type\":\"array\"},\"headers\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"Optional: Fields for authentication headers, timeouts, etc., if needed.\",\"type\":\"object\"},\"name\":{\"description\":\"The name of the MCPServer.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server\"},\"url\":{\"description\":\"The full URL for the MCPServer endpoint.\\nExample: \\\"https://api.example.com/mcp\\\"\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServer\"},\"McpServerToolCallStep\":{\"description\":\"MCPServer tool call step.\",\"example\":{\"arguments\":{\"income\":120000,\"state\":\"CA\"},\"id\":\"mcp_call_29012\",\"name\":\"calculate_tax\",\"server_name\":\"financial_mcp_server\",\"type\":\"mcp_server_tool_call\"},\"properties\":{\"arguments\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Required. The JSON object of arguments for the function.\",\"type\":\"object\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"name\":{\"description\":\"Required. The name of the tool which was called.\",\"type\":\"string\"},\"server_name\":{\"description\":\"Required. The name of the used MCP server.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server_tool_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"name\",\"server_name\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"McpServerToolCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"MCPServerToolCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServerToolCallStep\"},\"McpServerToolResultStep\":{\"description\":\"MCPServer tool result step.\",\"example\":{\"call_id\":\"mcp_call_29012\",\"name\":\"calculate_tax\",\"result\":{\"tax_due\":32400},\"server_name\":\"financial_mcp_server\",\"type\":\"mcp_server_tool_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the tool which is called for this specific tool call.\",\"type\":\"string\"},\"result\":{\"description\":\"Required. The output from the MCP server call. Can be simple text or rich content.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/FunctionResultSubContent\"},\"type\":\"array\"},{\"additionalProperties\":true,\"type\":\"object\"},{\"type\":\"string\"}]},\"server_name\":{\"description\":\"The name of the used MCP server.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server_tool_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"McpServerToolResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"MCPServerToolResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServerToolResultStep\"},\"MediaProcessing\":{\"oneOf\":[{\"$ref\":\"#/$defs/StaticMediaProcessing\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"MediaResolution\":{\"enum\":[\"low\",\"medium\",\"high\",\"ultra_high\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Low resolution.\",\"Medium resolution.\",\"High resolution.\",\"Ultra high resolution.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"ModelInteraction\":{\"description\":\"Interaction for generating the completion using models.\",\"properties\":{\"background\":{\"description\":\"Input only. Whether to run the model interaction in the background.\",\"type\":\"boolean\",\"writeOnly\":true},\"cached_content\":{\"deprecated\":true,\"description\":\"The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: cachedContents/{cachedContent}\",\"type\":\"string\"},\"continuation_token\":{\"description\":\"Opaque token to resume a long decode. Output: set when status is\\nINCOMPLETE and decoding can be resumed. Input: pass the latest token\\nback unchanged in CreateInteraction to continue decoding.\",\"format\":\"byte\",\"type\":\"string\"},\"created\":{\"description\":\"Required. Output only. The time at which the response was created in ISO 8601 format\\n(YYYY-MM-DDThh:mm:ssZ).\",\"readOnly\":true,\"type\":\"string\"},\"environment\":{\"description\":\"The environment configuration for the interaction. Can be an object\\nspecifying remote environment sources or a string referencing an existing\\nenvironment ID.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentConfig\"},{\"type\":\"string\"}]},\"environment_id\":{\"description\":\"Output only. The environment ID for the interaction. Only populated if environment\\nconfig is set in the request.\",\"readOnly\":true,\"type\":\"string\"},\"generation_config\":{\"$ref\":\"#/$defs/GenerationConfig\",\"description\":\"Input only. Configuration parameters for the model interaction.\",\"writeOnly\":true},\"id\":{\"description\":\"Required. Output only. A unique identifier for the interaction completion.\",\"readOnly\":true,\"type\":\"string\"},\"input\":{\"$ref\":\"#/$defs/InteractionsInput\"},\"labels\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"The labels with user-defined metadata for the request.\\n\\nLabel keys and values can be no longer than 63 characters\\n(Unicode codepoints) and can only contain lowercase letters, numeric\\ncharacters, underscores, and dashes. International characters are allowed.\\nLabel values are optional. Label keys must start with a letter.\",\"type\":\"object\"},\"model\":{\"$ref\":\"#/$defs/ModelOption\",\"description\":\"The name of the `Model` used for generating the interaction.\"},\"previous_interaction_id\":{\"description\":\"The ID of the previous interaction, if any.\",\"type\":\"string\"},\"response_format\":{\"description\":\"Enforces that the generated response is a JSON object that complies with\\nthe JSON schema specified in this field.\",\"oneOf\":[{\"$ref\":\"#/$defs/ResponseFormat\"},{\"items\":{\"$ref\":\"#/$defs/ResponseFormat\"},\"title\":\"ResponseFormatList\",\"type\":\"array\"}]},\"response_mime_type\":{\"deprecated\":true,\"description\":\"The mime type of the response. This is required if response_format is set.\",\"type\":\"string\"},\"response_modalities\":{\"deprecated\":true,\"description\":\"The requested modalities of the response (TEXT, IMAGE, AUDIO).\",\"items\":{\"$ref\":\"#/$defs/ResponseModality\"},\"type\":\"array\"},\"safety_settings\":{\"description\":\"Safety settings for the interaction.\",\"items\":{\"$ref\":\"#/$defs/SafetySetting\"},\"type\":\"array\"},\"service_tier\":{\"$ref\":\"#/$defs/ServiceTier\",\"description\":\"The service tier for the interaction.\"},\"status\":{\"description\":\"Required. Output only. The status of the interaction.\",\"enum\":[\"in_progress\",\"requires_action\",\"completed\",\"failed\",\"cancelled\",\"incomplete\",\"budget_exceeded\",\"queued\"],\"readOnly\":true,\"type\":\"string\",\"x-google-enum-deprecated\":[false,false,false,false,false,false,true,false],\"x-google-enum-descriptions\":[\"The interaction is in progress.\",\"The interaction requires action/input from the user.\",\"The interaction is completed.\",\"The interaction failed.\",\"The interaction was cancelled.\",\"The interaction is completed, but contains incomplete results (e.g.\\nhitting max_tokens).\",\"Deprecated: Token and execution budget exhaustion returns INCOMPLETE\\n(11).\",\"The interaction is queued, waiting for processing (e.g. waiting for\\noff-peak capacity).\"]},\"store\":{\"description\":\"Input only. Whether to store the response and request for later retrieval.\",\"type\":\"boolean\",\"writeOnly\":true},\"stream\":{\"default\":true,\"description\":\"Input only. Whether the interaction is streamed as server-sent events. Defaults to true; set false to receive one complete interaction.\",\"type\":\"boolean\",\"writeOnly\":true},\"system_instruction\":{\"description\":\"System instruction for the interaction.\",\"type\":\"string\"},\"tools\":{\"description\":\"A list of tool declarations the model may call during interaction.\",\"items\":{\"$ref\":\"#/$defs/Tool\"},\"type\":\"array\"},\"updated\":{\"description\":\"Required. Output only. The time at which the response was last updated in ISO 8601 format\\n(YYYY-MM-DDThh:mm:ssZ).\",\"readOnly\":true,\"type\":\"string\"},\"webhook_config\":{\"$ref\":\"#/$defs/WebhookConfig\",\"description\":\"Optional. Webhook configuration for receiving notifications when the\\ninteraction completes.\"\x7d\x7d,\"required\":[\"created\",\"id\",\"model\",\"status\",\"steps\",\"updated\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CreateModelInteractionParamsNonStreaming\",\"representation\":\"input\"},{\"group\":\"interactions\",\"name\":\"CreateModelInteractionParamsStreaming\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"CreateModelInteraction\"},\"ModelOption\":{\"default\":\"gemini-3.8-flash\",\"description\":\"The model that will complete your prompt.\\\\n\\\\nSee [models](https://ai.google.dev/gemini-api/docs/models) for additional details.\",\"enum\":[\"gemma-4-26b-a4b-it\",\"gemma-4-31b-it\",\"gemini-flash-latest\",\"gemini-flash-lite-latest\",\"gemini-pro-latest\",\"gemini-3.5-flash-lite\",\"gemini-2.5-flash-image\",\"gemini-3-flash-preview\",\"gemini-3.1-pro-preview\",\"gemini-3.1-pro-preview-customtools\",\"gemini-3.1-flash-lite\",\"gemini-3.1-flash-lite-image\",\"gemini-3-pro-image\",\"nano-banana-pro-preview\",\"gemini-3.1-flash-image\",\"gemini-nano-banana-2.1\",\"gemini-3.1-flash-tts-preview\",\"gemini-3.5-flash\",\"gemini-3.6-flash\",\"gemini-3.7-flash\",\"gemini-3.8-flash\",\"gemini-3.8-flash-tts\",\"gemini-3.8-flash-lite-tts\",\"lyria-3-clip-preview\",\"lyria-3-pro-preview\",\"gemini-robotics-er-2-preview\",\"lyria-3.5\",\"gemini-omni-1.1-flash\",\"gemini-omni-flash-preview\"],\"title\":\"Model\",\"type\":\"string\",\"x-speakeasy-cli-catalog\":{\"command\":\"models\",\"default\":\"gemini-3.8-flash\",\"description\":\"Bare \\\"models\\\" prints the curated model list built into this CLI (offline, no request). The default model is used by \\\"agent run\\\" whenever the request body names neither \\\"model\\\" nor \\\"agent\\\". Use \\\"models list\\\" and \\\"models get\\\" for the live API's models and metadata.\",\"summary\":\"Show the curated offline model catalog; list/get query the live API\"},\"x-speakeasy-enum-descriptions\":[\"Gemma 4 26B A4B IT\",\"Gemma 4 31B IT\",\"Latest release of Gemini Flash\",\"Latest release of Gemini Flash-Lite\",\"Latest release of Gemini Pro\",\"Our smallest and most cost effective model, built for at scale usage.\",\"Our native image generation model, optimized for speed, flexibility, and contextual understanding. Text input and output is priced the same as 2.5 Flash.\",\"Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.\",\"Our latest SOTA reasoning model with unprecedented depth and nuance, and powerful multimodal understanding and coding capabilities.\",\"Gemini 3.1 Pro Preview optimized for custom tool usage\",\"Our most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.\",\"Gemini 3.1 Flash Lite Image.\",\"Gemini 3 Pro Image\",\"Gemini 3 Pro Image Preview\",\"Gemini 3.1 Flash Image.\",\"Gemini Nano Banana 2.1.\",\"Gemini 3.1 Flash TTS: Powerful, low-latency speech generation. Enjoy natural outputs, steerable prompts, and new expressive audio tags for precise narration control.\",\"Gemini 3.5 Flash - Our earlier Flash model, built for speed and foundational performance across routine, high-throughput workloads.\",\"Gemini 3.6 Flash - Our previous generation Flash model, balancing speed and multimodal capabilities across general agentic and everyday tasks.\",\"Gemini 3.7 Flash - Our high-speed, efficient Flash model built for everyday coding, agentic tool use, and reliable multi-step execution.\",\"Gemini 3.8 Flash - Our most intelligent Flash model, engineered for long-horizon software engineering, autonomous agents, and complex enterprise workflows.\",\"Gemini 3.8 Flash TTS - Flagship TTS model for Voice Design and dual-speaker screenplay control. Prompt custom vocal personas, direct line-by-line delivery, and add vocal bursts.\",\"Gemini 3.8 Flash Lite TTS - High-speed and cost-efficient, ideal for rapid dubbing, media localization, and high-throughput voice agents. Direct replacement for gemini-3.1-flash-tts-preview.\",\"Our low-latency, music generation model optimized for high-fidelity audio clips and precise rhythmic control.\",\"Our advanced, full-song generative model with deep compositional understanding, optimized for precise structural control and complex transitions across diverse musical styles.\",\"Gemini Robotics Embodied Reasoning 2 Preview\",\"Our flagship music generation model, optimized for full-length songs with complex structural coherence.\",\"Our high-performance multimodal model designed for fast, conversational video generation, editing, and cinematic control.\",\"Preview release of our multimodal model for conversational video generation, editing, and cinematic control.\"],\"x-speakeasy-enum-format\":\"union\",\"x-speakeasy-enum-groups\":{\"gemini-2.5-flash-image\":\"Image\",\"gemini-3-flash-preview\":\"Gemini\",\"gemini-3-pro-image\":\"Image\",\"gemini-3.1-flash-image\":\"Image\",\"gemini-3.1-flash-lite\":\"Gemini\",\"gemini-3.1-flash-lite-image\":\"Image\",\"gemini-3.1-flash-tts-preview\":\"Speech\",\"gemini-3.1-pro-preview\":\"Gemini\",\"gemini-3.1-pro-preview-customtools\":\"Gemini\",\"gemini-3.5-flash\":\"Gemini\",\"gemini-3.5-flash-lite\":\"Gemini\",\"gemini-3.6-flash\":\"Gemini\",\"gemini-3.7-flash\":\"Gemini\",\"gemini-3.8-flash\":\"Gemini\",\"gemini-3.8-flash-lite-tts\":\"Speech\",\"gemini-3.8-flash-tts\":\"Speech\",\"gemini-flash-latest\":\"Gemini\",\"gemini-flash-lite-latest\":\"Gemini\",\"gemini-nano-banana-2.1\":\"Image\",\"gemini-omni-1.1-flash\":\"Video\",\"gemini-omni-flash-preview\":\"Video\",\"gemini-pro-latest\":\"Gemini\",\"gemini-robotics-er-2-preview\":\"Robotics\",\"gemma-4-26b-a4b-it\":\"Gemma\",\"gemma-4-31b-it\":\"Gemma\",\"lyria-3-clip-preview\":\"Music\",\"lyria-3-pro-preview\":\"Music\",\"lyria-3.5\":\"Music\",\"nano-banana-pro-preview\":\"Image\"},\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Model\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"Model\",\"x-speakeasy-unknown-values\":\"allow\"},\"ModelOutputStep\":{\"description\":\"Output generated by the model.\",\"example\":{\"content\":[{\"text\":\"The capital of France is Paris.\",\"type\":\"text\"}],\"type\":\"model_output\"},\"properties\":{\"content\":{\"items\":{\"$ref\":\"#/$defs/Content\"},\"type\":\"array\"},\"error\":{\"$ref\":\"#/$defs/Status\",\"deprecated\":true,\"description\":\"The error result of the operation in case of failure or cancellation.\"},\"type\":{\"const\":\"model_output\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"ModelOutputStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ModelOutputStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ParallelAISearchConfig\":{\"description\":\"Used to specify configuration for ParallelAISearch.\",\"properties\":{\"api_key\":{\"description\":\"Optional. The API key for ParallelAiSearch.\",\"type\":\"string\"},\"custom_config\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Optional. Custom configs for ParallelAiSearch.\",\"type\":\"object\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"PlaceCitation\":{\"description\":\"A place citation annotation.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"name\":{\"description\":\"Title of the place.\",\"type\":\"string\"},\"place_id\":{\"description\":\"The ID of the place, in `places/{place_id}` format.\",\"type\":\"string\"},\"review_snippets\":{\"description\":\"Snippets of reviews that are used to generate answers about the\\nfeatures of a given place in Google Maps.\",\"items\":{\"$ref\":\"#/$defs/ReviewSnippet\"},\"type\":\"array\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"place_citation\"},\"url\":{\"description\":\"URI reference of the place.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"PlaceCitation\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ProcessingCallStep\":{\"description\":\"A server-initiated processing step for media analysis (e.g. video\\nunderstanding).\",\"properties\":{\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"processing_call\"\x7d\x7d,\"required\":[\"id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ProcessingCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ProcessingResultStep\":{\"description\":\"The result of a server-initiated media processing step.\",\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"processing_result\"\x7d\x7d,\"required\":[\"call_id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ProcessingResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"RagResource\":{\"description\":\"The definition of the Rag resource.\",\"properties\":{\"rag_corpus\":{\"description\":\"Optional. RagCorpora resource name.\",\"type\":\"string\"},\"rag_file_ids\":{\"description\":\"Optional. rag_file_id. The files should be in the same rag_corpus set in\\nrag_corpus field.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RagRetrievalConfig\":{\"description\":\"Specifies the context retrieval config.\",\"properties\":{\"filter\":{\"$ref\":\"#/$defs/Filter\",\"description\":\"Optional. Config for filters.\"},\"hybrid_search\":{\"$ref\":\"#/$defs/HybridSearch\",\"description\":\"Optional. Config for Hybrid Search.\"},\"ranking\":{\"$ref\":\"#/$defs/Ranking\",\"description\":\"Optional. Config for ranking and reranking.\"},\"top_k\":{\"description\":\"Optional. The number of contexts to retrieve.\",\"format\":\"int32\",\"type\":\"integer\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RagStoreConfig\":{\"description\":\"Use to specify configuration for RAG Store.\",\"properties\":{\"rag_resources\":{\"description\":\"Optional. The representation of the rag source.\",\"items\":{\"$ref\":\"#/$defs/RagResource\"},\"type\":\"array\"},\"rag_retrieval_config\":{\"$ref\":\"#/$defs/RagRetrievalConfig\",\"description\":\"Optional. The retrieval config for the Rag query.\"},\"similarity_top_k\":{\"deprecated\":true,\"description\":\"Optional. Number of top k results to return from the selected corpora.\",\"format\":\"int32\",\"type\":\"integer\"},\"vector_distance_threshold\":{\"deprecated\":true,\"description\":\"Optional. Only return results with vector distance smaller than the threshold.\",\"format\":\"double\",\"type\":\"number\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RankService\":{\"description\":\"Config for Rank Service.\",\"properties\":{\"model_name\":{\"description\":\"Optional. The model name of the rank service.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Ranking\":{\"description\":\"Config for ranking and reranking.\",\"properties\":{\"model_name\":{\"description\":\"Optional. The model name of the rank service.\",\"type\":\"string\"},\"rank_service\":{\"$ref\":\"#/$defs/RankService\",\"description\":\"Config for Rank Service.\"},\"ranking_config\":{\"const\":\"rank_service\"\x7d\x7d,\"required\":[\"ranking_config\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ResponseFormat\":{\"oneOf\":[{\"$ref\":\"#/$defs/AudioResponseFormat\"},{\"$ref\":\"#/$defs/ImageResponseFormat\"},{\"$ref\":\"#/$defs/TextResponseFormat\"},{\"$ref\":\"#/$defs/VideoResponseFormat\"},{\"additionalProperties\":true,\"type\":\"object\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ResponseModality\":{\"enum\":[\"text\",\"image\",\"audio\",\"video\",\"document\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Indicates the model should return text.\",\"Indicates the model should return images.\",\"Indicates the model should return audio.\",\"Indicates the model should return video.\",\"Indicates the model should return documents.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"Retrieval\":{\"description\":\"A tool that can be used by the model to retrieve files.\",\"properties\":{\"exa_ai_search_config\":{\"$ref\":\"#/$defs/ExaAISearchConfig\",\"description\":\"Used to specify configuration for ExaAISearch.\"},\"parallel_ai_search_config\":{\"$ref\":\"#/$defs/ParallelAISearchConfig\",\"description\":\"Used to specify configuration for ParallelAISearch.\"},\"rag_store_config\":{\"$ref\":\"#/$defs/RagStoreConfig\",\"description\":\"Used to specify configuration for RagStore.\"},\"retrieval_types\":{\"description\":\"The types of file retrieval to enable.\",\"items\":{\"enum\":[\"vertex_ai_search\",\"rag_store\",\"exa_ai_search\",\"parallel_ai_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"\",\"\",\"\",\"\"]},\"type\":\"array\"},\"type\":{\"const\":\"retrieval\"},\"vertex_ai_search_config\":{\"$ref\":\"#/$defs/VertexAISearchConfig\",\"description\":\"Used to specify configuration for VertexAISearch.\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RetrievalCallStep\":{\"description\":\"Retrieval call step.\\nUsed by Vertex Retrieval tools such as Parallel AI, Exa AI, Vertex AI Search,\\netc. RetrievalType decides which tool is used.\",\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/RetrievalStepArguments\",\"description\":\"Required. The arguments to pass to the retrieval tool.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"retrieval_type\":{\"description\":\"The type of retrieval tools.\",\"enum\":[\"vertex_ai_search\",\"rag_store\",\"exa_ai_search\",\"parallel_ai_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"\",\"\",\"\",\"\"]},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"retrieval_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"RetrievalCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"RetrievalResultStep\":{\"description\":\"Vertex Retrieval result step.\\nUsed by Vertex Retrieval tools such as Parallel AI, Exa AI, Vertex AI Search,\\netc.\",\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the retrieval resulted in an error.\",\"type\":\"boolean\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"retrieval_result\"\x7d\x7d,\"required\":[\"call_id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"RetrievalResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"RetrievalStepArguments\":{\"description\":\"The arguments to pass to Retrieval tools.\",\"properties\":{\"queries\":{\"description\":\"Queries for Retrieval information.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"RetrievalCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"RetrievalCallArguments\"},\"ReviewSnippet\":{\"description\":\"Encapsulates a snippet of a user review that answers a question about\\nthe features of a specific place in Google Maps.\",\"properties\":{\"review_id\":{\"description\":\"The ID of the review snippet.\",\"type\":\"string\"},\"title\":{\"description\":\"Title of the review.\",\"type\":\"string\"},\"url\":{\"description\":\"A link that corresponds to the user review on Google Maps.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SafetySetting\":{\"description\":\"A safety setting that affects the safety-blocking behavior.\\n\\nA SafetySetting consists of a\\nharm category and a\\nthreshold for that\\ncategory.\",\"properties\":{\"method\":{\"description\":\"Optional. The method for blocking content. If not specified, the default\\nbehavior is to use the probability score.\",\"enum\":[\"severity\",\"probability\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"The harm block method uses both probability and severity scores.\",\"The harm block method uses the probability score.\"]},\"threshold\":{\"description\":\"Required. The threshold for blocking content. If the harm probability\\nexceeds this threshold, the content will be blocked.\",\"enum\":[\"block_low_and_above\",\"block_medium_and_above\",\"block_only_high\",\"block_none\",\"off\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Block content with a low harm probability or higher.\",\"Block content with a medium harm probability or higher.\",\"Block content with a high harm probability.\",\"Do not block any content, regardless of its harm probability.\",\"Turn off the safety filter entirely.\"]},\"type\":{\"$ref\":\"#/$defs/HarmCategory\",\"description\":\"Required. The type of harm category to be blocked.\"\x7d\x7d,\"required\":[\"threshold\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"SafetySetting\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ServiceTier\":{\"enum\":[\"flex\",\"standard\",\"priority\",\"deferred\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Flex service tier.\",\"Standard service tier.\",\"Priority service tier.\",\"Deferred service tier.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"SessionConfig\":{\"description\":\"The configuration of CodeMender sessions.\",\"properties\":{\"max_rounds\":{\"description\":\"The maximum number of interaction rounds the agent is allowed to perform\\nbefore reaching a timeout.\",\"format\":\"int32\",\"type\":\"integer\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SmartTranscriptionMode\":{\"description\":\"Configuration for smart transcription mode.\",\"properties\":{\"type\":{\"const\":\"smart\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Source\":{\"description\":\"A source to be mounted into the environment.\",\"properties\":{\"content\":{\"description\":\"The inline content if `type` is `INLINE`.\",\"type\":\"string\"},\"encoding\":{\"description\":\"Optional encoding for inline content (e.g. `base64`).\",\"type\":\"string\"},\"source\":{\"description\":\"The source of the environment.\\nFor Cloud Storage, this is the Cloud Storage path.\\nFor GitHub, this is the GitHub path.\",\"type\":\"string\"},\"target\":{\"description\":\"Where the source should appear in the environment.\",\"type\":\"string\"},\"type\":{\"enum\":[\"gcs\",\"inline\",\"repository\",\"skill_registry\"],\"type\":\"string\",\"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://).\",\"A skill resource from the Skill Registry Service.\\nSkill: projects/{project}/locations/{location}/skills/{skill}\\nSkillRevision:\\nprojects/{project}/locations/{location}/skills/{skill}/revisions/{revision}\\nSupport mounting all skills under a project:\\nprojects/{project}/locations/{location}/skills.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SpeakerConfig\":{\"description\":\"Configuration for multi-speaker and speech generation.\",\"properties\":{\"speakers\":{\"description\":\"Individual speaker configurations.\",\"items\":{\"$ref\":\"#/$defs/SpeechConfig\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SpeechAnnotation\":{\"description\":\"Speech annotation for text content.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"speaker\":{\"description\":\"The speaker to associate with this turn.\",\"type\":\"string\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"style\":{\"description\":\"Style instruction for the speech synthesis.\",\"type\":\"string\"},\"type\":{\"const\":\"speech_metadata\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SpeechConfig\":{\"description\":\"The configuration for speech interaction.\",\"properties\":{\"language\":{\"description\":\"The language of the speech.\",\"type\":\"string\"},\"speaker\":{\"description\":\"The speaker's name, it should match the speaker name given in the prompt.\",\"type\":\"string\"},\"voice\":{\"description\":\"The voice of the speaker.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"SpeechConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"StaticMediaProcessing\":{\"properties\":{\"end_offset\":{\"description\":\"Optional. Segment end time. Specified as a decimal number of seconds followed\\nby an 's' suffix, e.g., \\\"30s\\\". Must be non-negative and greater than\\n`start_offset` if `start_offset` is set.\",\"format\":\"google-duration\",\"type\":\"string\"},\"fps\":{\"description\":\"Optional. Video frame-rate sampling density.\",\"format\":\"double\",\"type\":\"number\"},\"start_offset\":{\"description\":\"Optional. Segment start time. Specified as a decimal number of seconds followed\\nby an 's' suffix, e.g., \\\"10.5s\\\". Must be non-negative.\",\"format\":\"google-duration\",\"type\":\"string\"},\"type\":{\"const\":\"static\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Status\":{\"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\":{\"code\":{\"description\":\"The status code, which should be an enum value of google.rpc.Code.\",\"format\":\"int32\",\"type\":\"integer\"},\"details\":{\"description\":\"A list of messages that carry the error details. There is a common set of\\nmessage types for APIs to use.\",\"items\":{\"additionalProperties\":{\"description\":\"Properties of the object. Contains field @type with type URL.\"},\"type\":\"object\"},\"type\":\"array\"},\"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\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Step\":{\"description\":\"A step in the interaction.\",\"oneOf\":[{\"$ref\":\"#/$defs/CodeExecutionCallStep\"},{\"$ref\":\"#/$defs/CodeExecutionResultStep\"},{\"$ref\":\"#/$defs/FileSearchCallStep\"},{\"$ref\":\"#/$defs/FileSearchResultStep\"},{\"$ref\":\"#/$defs/FunctionCallStep\"},{\"$ref\":\"#/$defs/FunctionResultStep\"},{\"$ref\":\"#/$defs/GoogleMapsCallStep\"},{\"$ref\":\"#/$defs/GoogleMapsResultStep\"},{\"$ref\":\"#/$defs/GoogleSearchCallStep\"},{\"$ref\":\"#/$defs/GoogleSearchResultStep\"},{\"$ref\":\"#/$defs/McpServerToolCallStep\"},{\"$ref\":\"#/$defs/McpServerToolResultStep\"},{\"$ref\":\"#/$defs/ModelOutputStep\"},{\"$ref\":\"#/$defs/ProcessingCallStep\"},{\"$ref\":\"#/$defs/ProcessingResultStep\"},{\"$ref\":\"#/$defs/RetrievalCallStep\"},{\"$ref\":\"#/$defs/RetrievalResultStep\"},{\"$ref\":\"#/$defs/ThoughtStep\"},{\"$ref\":\"#/$defs/UrlContextCallStep\"},{\"$ref\":\"#/$defs/UrlContextResultStep\"},{\"$ref\":\"#/$defs/UserInputStep\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Step\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TextContent\":{\"description\":\"A text content block.\",\"example\":{\"text\":\"Hello, how are you?\",\"type\":\"text\"},\"properties\":{\"annotations\":{\"description\":\"Citation information for model-generated content.\",\"items\":{\"$ref\":\"#/$defs/Annotation\"},\"type\":\"array\"},\"text\":{\"description\":\"Required. The text content.\",\"type\":\"string\"},\"type\":{\"const\":\"text\"\x7d\x7d,\"required\":[\"text\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Text\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TextContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TextResponseFormat\":{\"description\":\"Configuration for text output format.\",\"example\":{\"mime_type\":\"application/json\",\"schema\":{\"properties\":{\"ingredients\":{\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"recipe_name\":{\"type\":\"string\"\x7d\x7d,\"required\":[\"ingredients\",\"recipe_name\"],\"type\":\"object\"},\"type\":\"text\"},\"properties\":{\"mime_type\":{\"description\":\"The MIME type of the text output.\",\"enum\":[\"application/json\",\"text/plain\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"JSON output format.\",\"Plain text output format.\"]},\"schema\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"The JSON schema that the output should conform to. Only applicable when\\nmime_type is application/json.\",\"type\":\"object\"},\"type\":{\"const\":\"text\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Text Output (JSON Schema)\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TextResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ThinkingLevel\":{\"enum\":[\"minimal\",\"low\",\"medium\",\"high\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Little to no thinking.\",\"Low thinking level.\",\"Medium thinking level.\",\"High thinking level.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ThinkingLevel\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ThinkingSummaries\":{\"enum\":[\"auto\",\"none\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Auto thinking summaries.\",\"No thinking summaries.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"ThoughtContent\":{\"oneOf\":[{\"$ref\":\"#/$defs/ImageContent\"},{\"$ref\":\"#/$defs/TextContent\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"ThoughtSummaryContent\"},\"ThoughtStep\":{\"description\":\"A thought step.\",\"example\":{\"signature\":\"thought_sig_abcd1234\",\"summary\":[{\"text\":\"The model is searching Google for the capital of France.\",\"type\":\"text\"}],\"type\":\"thought\"},\"properties\":{\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"summary\":{\"description\":\"A summary of the thought.\",\"items\":{\"$ref\":\"#/$defs/ThoughtContent\"},\"type\":\"array\"},\"type\":{\"const\":\"thought\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"ThoughtStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ThoughtStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"Tool\":{\"description\":\"A tool that can be used by the model.\",\"oneOf\":[{\"$ref\":\"#/$defs/CodeExecution\"},{\"$ref\":\"#/$defs/ComputerUse\"},{\"$ref\":\"#/$defs/FileSearch\"},{\"$ref\":\"#/$defs/Function\"},{\"$ref\":\"#/$defs/GoogleMaps\"},{\"$ref\":\"#/$defs/GoogleSearch\"},{\"$ref\":\"#/$defs/McpServer\"},{\"$ref\":\"#/$defs/Retrieval\"},{\"$ref\":\"#/$defs/UrlContext\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Tool\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ToolChoiceConfig\":{\"description\":\"The tool choice configuration containing allowed tools.\",\"example\":{\"allowed_tools\":{\"mode\":\"any\",\"tools\":[\"my_tool\"]\x7d\x7d,\"properties\":{\"allowed_tools\":{\"$ref\":\"#/$defs/AllowedTools\",\"description\":\"The allowed tools.\"\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Allowed Tools\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ToolChoiceConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ToolChoiceType\":{\"enum\":[\"auto\",\"any\",\"none\",\"validated\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Auto tool choice.\",\"Any tool choice.\",\"No tool choice.\",\"Validated tool choice.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ToolChoiceType\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TranscriptionConfig\":{\"description\":\"Configuration for speech recognition (transcription).\",\"properties\":{\"adaptation_phrases\":{\"deprecated\":true,\"description\":\"Optional. A list of phrases to bias the ASR model towards.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"custom_vocabulary\":{\"description\":\"Optional. A list of custom vocabulary phrases to bias the speech recognition model\\ntoward recognizing specific terms.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"diarization_mode\":{\"deprecated\":true,\"description\":\"Optional. Configures speaker diarization. Supported values: \\\"speaker\\\".\",\"type\":\"string\"},\"language_codes\":{\"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\"},\"language_hints\":{\"deprecated\":true,\"description\":\"Deprecated: use language_codes. BCP-47 language codes providing hints about the languages present in the audio.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"mode\":{\"description\":\"Discriminated transcription mode options or enum.\",\"oneOf\":[{\"$ref\":\"#/$defs/TranscriptionMode\"},{\"enum\":[\"verbatim\",\"smart\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Verbatim transcription mode.\",\"Smart transcription mode.\"]}],\"title\":\"TranscriptionConfigMode\"},\"timestamp_granularities\":{\"deprecated\":true,\"description\":\"Optional. The granularity of timestamps to include in the transcription output.\\nSupported values: \\\"word\\\". If empty, no timestamps are generated.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TranscriptionConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TranscriptionMode\":{\"description\":\"Configuration for transcription mode.\",\"oneOf\":[{\"$ref\":\"#/$defs/SmartTranscriptionMode\"},{\"$ref\":\"#/$defs/VerbatimTranscriptionMode\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TranscriptionMode\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"UrlCitation\":{\"description\":\"A URL citation annotation.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"title\":{\"description\":\"The title of the URL.\",\"type\":\"string\"},\"type\":{\"const\":\"url_citation\"},\"url\":{\"description\":\"The URL.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLCitation\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLCitation\"},\"UrlContext\":{\"description\":\"A tool that can be used by the model to fetch URL context.\",\"properties\":{\"type\":{\"const\":\"url_context\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContext\"},\"UrlContextCallArguments\":{\"description\":\"The arguments to pass to the URL context.\",\"properties\":{\"urls\":{\"description\":\"The URLs to fetch.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextCallArguments\"},\"UrlContextCallStep\":{\"description\":\"URL context call step.\",\"example\":{\"arguments\":{\"urls\":[\"https://www.example.com\"]},\"id\":\"url_call_10219\",\"type\":\"url_context_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/UrlContextCallArguments\",\"description\":\"Required. The arguments to pass to the URL context.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"url_context_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"UrlContextCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextCallStep\"},\"UrlContextResult\":{\"description\":\"The result of the URL context.\",\"properties\":{\"status\":{\"description\":\"The status of the URL retrieval.\",\"enum\":[\"success\",\"error\",\"paywall\",\"unsafe\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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.\"]},\"url\":{\"description\":\"The URL that was fetched.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextResult\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextResult\"},\"UrlContextResultStep\":{\"description\":\"URL context result step.\",\"example\":{\"call_id\":\"url_call_10219\",\"result\":[{\"status\":\"success\",\"url\":\"https://www.example.com\"}],\"type\":\"url_context_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the URL context resulted in an error.\",\"type\":\"boolean\"},\"result\":{\"description\":\"Required. The results of the URL context.\",\"items\":{\"$ref\":\"#/$defs/UrlContextResult\"},\"type\":\"array\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"url_context_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"UrlContextResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextResultStep\"},\"UserInputStep\":{\"description\":\"Input provided by the user.\",\"example\":{\"content\":[{\"text\":\"What is the capital of France?\",\"type\":\"text\"}],\"type\":\"user_input\"},\"properties\":{\"content\":{\"items\":{\"$ref\":\"#/$defs/Content\"},\"title\":\"ContentList\",\"type\":\"array\"},\"type\":{\"const\":\"user_input\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"UserInputStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"UserInputStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"VerbatimTranscriptionMode\":{\"description\":\"Configuration for verbatim transcription mode.\",\"properties\":{\"diarization_mode\":{\"description\":\"Optional. Configures speaker diarization. Supported values: \\\"speaker\\\".\",\"type\":\"string\"},\"timestamp_granularities\":{\"description\":\"Optional. The granularity of timestamps to include in the transcription output.\\nSupported values: \\\"word\\\". If empty, no timestamps are generated.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"type\":{\"const\":\"verbatim\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"VertexAISearchConfig\":{\"description\":\"Used to specify configuration for VertexAISearch.\",\"properties\":{\"datastores\":{\"description\":\"Optional. Used to specify Vertex AI Search datastores.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"engine\":{\"description\":\"Optional. Used to specify Vertex AI Search engine.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"VideoConfig\":{\"description\":\"Configuration options for video generation.\",\"properties\":{\"task\":{\"description\":\"Optional task mode for video generation. If not specified, the model\\nautomatically determines the appropriate mode based on the provided text\\nprompt and input media.\",\"enum\":[\"text_to_video\",\"image_to_video\",\"reference_to_video\",\"edit\",\"extend\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Generates video solely from a text prompt.\",\"Generates video from one or two source images. The first image defines\\nthe starting frame, and the optional second image defines the ending\\nframe.\",\"Generates video using reference media (such as images, audio, or video).\",\"Modifies an existing input video.\",\"Extends an existing input video.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"VideoConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"VideoContent\":{\"description\":\"A video content block.\",\"example\":{\"type\":\"video\",\"uri\":\"https://www.youtube.com/watch?v=9hE5-98ZeCg\"},\"properties\":{\"data\":{\"description\":\"The video content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the video.\",\"enum\":[\"video/mp4\",\"video/mpeg\",\"video/mpg\",\"video/mov\",\"video/avi\",\"video/x-flv\",\"video/webm\",\"video/wmv\",\"video/3gpp\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"MP4 video format\",\"MPEG video format\",\"MPG video format\",\"MOV video format\",\"AVI video format\",\"FLV video format\",\"WebM video format\",\"WMV video format\",\"3GPP video format\"]},\"name\":{\"description\":\"A user-defined name for this content block. Can be referenced by the model\\nin the final response.\",\"type\":\"string\"},\"processing\":{\"description\":\"How the model processes this video for understanding.\",\"oneOf\":[{\"$ref\":\"#/$defs/MediaProcessing\"},{\"enum\":[\"static\",\"agentic\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Fixed-rate frame extraction. All frames placed in context.\",\"Model-driven dynamic navigation.\"]}]},\"resolution\":{\"$ref\":\"#/$defs/MediaResolution\",\"description\":\"The resolution of the media.\"},\"type\":{\"const\":\"video\"},\"uri\":{\"description\":\"The URI of the video.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Video\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"VideoContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"VideoResponseFormat\":{\"description\":\"Configuration for video output format.\",\"example\":{\"aspect_ratio\":\"16:9\",\"delivery\":\"inline\",\"type\":\"video\"},\"properties\":{\"aspect_ratio\":{\"description\":\"The aspect ratio for the video output.\",\"enum\":[\"16:9\",\"9:16\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"16:9 aspect ratio.\",\"9:16 aspect ratio.\"]},\"delivery\":{\"description\":\"The delivery mode for the video output.\",\"enum\":[\"inline\",\"uri\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Video data is returned inline in the response.\",\"Video data is returned as a URI.\"]},\"duration\":{\"description\":\"The duration for the video output.\",\"format\":\"google-duration\",\"type\":\"string\"},\"gcs_uri\":{\"description\":\"The Cloud Storage URI to store the video output. Required for Vertex if\\ndelivery mode is URI.\",\"type\":\"string\"},\"resolution\":{\"description\":\"The video output resolution. Defaults to 720p.\",\"enum\":[\"360p\",\"720p\",\"1080p\",\"4k\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"360p resolution.\",\"720p resolution.\",\"1080p resolution.\",\"4K resolution.\"]},\"type\":{\"const\":\"video\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Video Output\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"VideoResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"WebhookConfig\":{\"description\":\"Message for configuring webhook events for a request.\",\"properties\":{\"uris\":{\"description\":\"Optional. If set, these webhook URIs will be used for webhook events instead of the\\nregistered webhooks.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"user_metadata\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Optional. The user metadata that will be returned on each event emission to the\\nwebhooks.\",\"type\":\"object\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"WebhookConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"WordInfo\":{\"description\":\"Word-level ASR annotation for transcription output.\\nCarries the word text, optional timing, and optional speaker attribution.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"end_offset\":{\"description\":\"End offset in time of the word relative to the start of the audio.\\nPresent when timestamp_granularities contains \\\"word\\\".\",\"format\":\"google-duration\",\"type\":\"string\"},\"speaker\":{\"description\":\"Optional. Speaker label for this word (e.g. \\\"spk_1\\\", \\\"spk_2\\\").\\nPresent when diarization_mode is set in TranscriptionConfig.\",\"type\":\"string\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"start_offset\":{\"description\":\"Start offset in time of the word relative to the start of the audio.\\nPresent when timestamp_granularities contains \\\"word\\\".\",\"format\":\"google-duration\",\"type\":\"string\"},\"text\":{\"description\":\"The transcribed word.\",\"type\":\"string\"},\"type\":{\"const\":\"word_info\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"WordInfo\"}],\"x-speakeasy-model-namespace\":\"interactions\"\x7d\x7d,\"oneOf\":[{\"$ref\":\"#/$defs/AgentInteraction\"},{\"$ref\":\"#/$defs/ModelInteraction\"}]}", + "CreateInteraction": "{\"$defs\":{\"AgentInteraction\":{\"description\":\"Interaction for generating the completion using agents.\",\"properties\":{\"agent\":{\"$ref\":\"#/$defs/AgentOption\",\"description\":\"The name of the `Agent` used for generating the interaction.\"},\"agent_config\":{\"description\":\"Configuration parameters for the agent interaction.\",\"oneOf\":[{\"$ref\":\"#/$defs/AntigravityAgentConfig\"},{\"$ref\":\"#/$defs/CodeMenderAgentConfig\"},{\"$ref\":\"#/$defs/DeepResearchAgentConfig\"},{\"$ref\":\"#/$defs/DynamicAgentConfig\"}],\"x-speakeasy-unknown-values\":\"disallow\"},\"background\":{\"description\":\"Input only. Whether to run the model interaction in the background.\",\"type\":\"boolean\"},\"continuation_token\":{\"description\":\"Opaque token to resume a long decode. Output: set when status is\\nINCOMPLETE and decoding can be resumed. Input: pass the latest token\\nback unchanged in CreateInteraction to continue decoding.\",\"format\":\"byte\",\"type\":\"string\"},\"environment\":{\"description\":\"The environment configuration for the interaction. Can be an object\\nspecifying remote environment sources or a string referencing an existing\\nenvironment ID.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentConfig\"},{\"type\":\"string\"}],\"x-speakeasy-unknown-values\":\"disallow\"},\"input\":{\"$ref\":\"#/$defs/InteractionsInput\"},\"labels\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"The labels with user-defined metadata for the request.\\n\\nLabel keys and values can be no longer than 63 characters\\n(Unicode codepoints) and can only contain lowercase letters, numeric\\ncharacters, underscores, and dashes. International characters are allowed.\\nLabel values are optional. Label keys must start with a letter.\",\"type\":\"object\"},\"previous_interaction_id\":{\"description\":\"The ID of the previous interaction, if any.\",\"type\":\"string\"},\"response_format\":{\"description\":\"Enforces that the generated response is a JSON object that complies with\\nthe JSON schema specified in this field.\",\"oneOf\":[{\"$ref\":\"#/$defs/ResponseFormat\"},{\"items\":{\"$ref\":\"#/$defs/ResponseFormat\"},\"title\":\"ResponseFormatList\",\"type\":\"array\"}]},\"response_mime_type\":{\"deprecated\":true,\"description\":\"The mime type of the response. This is required if response_format is set.\",\"type\":\"string\"},\"response_modalities\":{\"deprecated\":true,\"description\":\"The requested modalities of the response (TEXT, IMAGE, AUDIO).\",\"items\":{\"$ref\":\"#/$defs/ResponseModality\"},\"type\":\"array\"},\"safety_settings\":{\"description\":\"Safety settings for the interaction.\",\"items\":{\"$ref\":\"#/$defs/SafetySetting\"},\"type\":\"array\"},\"service_tier\":{\"$ref\":\"#/$defs/ServiceTier\",\"description\":\"The service tier for the interaction.\"},\"store\":{\"description\":\"Input only. Whether to store the response and request for later retrieval.\",\"type\":\"boolean\"},\"stream\":{\"default\":true,\"description\":\"Input only. Whether the interaction is streamed as server-sent events. Defaults to true; set false to receive one complete interaction.\",\"type\":\"boolean\"},\"system_instruction\":{\"description\":\"System instruction for the interaction.\",\"type\":\"string\"},\"tools\":{\"description\":\"A list of tool declarations the model may call during interaction.\",\"items\":{\"$ref\":\"#/$defs/Tool\"},\"type\":\"array\"},\"webhook_config\":{\"$ref\":\"#/$defs/WebhookConfig\",\"description\":\"Optional. Webhook configuration for receiving notifications when the\\ninteraction completes.\"\x7d\x7d,\"required\":[\"agent\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CreateAgentInteractionParamsNonStreaming\",\"representation\":\"input\"},{\"group\":\"interactions\",\"name\":\"CreateAgentInteractionParamsStreaming\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"CreateAgentInteraction\"},\"AgentOption\":{\"description\":\"The agent to interact with.\",\"enum\":[\"deep-research-pro-preview-12-2025\",\"deep-research-preview-04-2026\",\"deep-research-max-preview-04-2026\",\"antigravity-preview-05-2026\"],\"title\":\"Agent\",\"type\":\"string\",\"x-speakeasy-enum-descriptions\":[\"Gemini Deep Research Agent\",\"Gemini Deep Research Agent\",\"Gemini Deep Research Max Agent\",\"Use the Antigravity managed agent to perform multi-step tasks that require reasoning, file operations, and tool use.\"],\"x-speakeasy-enum-format\":\"union\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"allow\"},\"AllowedTools\":{\"description\":\"The configuration for allowed tools.\",\"properties\":{\"mode\":{\"$ref\":\"#/$defs/ToolChoiceType\",\"description\":\"The mode of the tool choice.\"},\"tools\":{\"description\":\"The names of the allowed tools.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AllowedTools\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"Annotation\":{\"description\":\"Citation information for model-generated content.\",\"oneOf\":[{\"$ref\":\"#/$defs/FileCitation\"},{\"$ref\":\"#/$defs/PlaceCitation\"},{\"$ref\":\"#/$defs/SpeechAnnotation\"},{\"$ref\":\"#/$defs/UrlCitation\"},{\"$ref\":\"#/$defs/WordInfo\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Annotation\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"AntigravityAgentConfig\":{\"description\":\"Configuration for the Antigravity agent runtime.\\nProvides server-side control over the agent's execution environment\\nand tool configuration.\",\"properties\":{\"max_total_tokens\":{\"description\":\"Max total tokens for the agent run.\",\"format\":\"int64\",\"type\":\"string\"},\"model\":{\"description\":\"The model to use for agent reasoning.\",\"type\":\"string\"},\"type\":{\"const\":\"antigravity\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AntigravityAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"AudioContent\":{\"description\":\"An audio content block.\",\"example\":{\"data\":\"BASE64_ENCODED_AUDIO\",\"mime_type\":\"audio/wav\",\"type\":\"audio\"},\"properties\":{\"channels\":{\"description\":\"The number of audio channels.\",\"format\":\"int32\",\"type\":\"integer\"},\"data\":{\"description\":\"The audio content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the audio.\",\"enum\":[\"audio/wav\",\"audio/mp3\",\"audio/aiff\",\"audio/aac\",\"audio/ogg\",\"audio/flac\",\"audio/mpeg\",\"audio/m4a\",\"audio/l16\",\"audio/opus\",\"audio/alaw\",\"audio/mulaw\",\"audio/webm\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"WAV audio format\",\"MP3 audio format\",\"AIFF audio format\",\"AAC audio format\",\"OGG audio format\",\"FLAC audio format\",\"MPEG audio format\",\"M4A audio format\",\"L16 audio format\",\"OPUS audio format\",\"ALAW audio format\",\"MULAW audio format\",\"WebM audio format\"]},\"sample_rate\":{\"description\":\"The sample rate of the audio.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"audio\"},\"uri\":{\"description\":\"The URI of the audio.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Audio\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AudioContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"AudioResponseFormat\":{\"description\":\"Configuration for audio output format.\",\"example\":{\"sample_rate\":24000,\"type\":\"audio\"},\"properties\":{\"bit_rate\":{\"description\":\"Bit rate in bits per second (bps). Only applicable for compressed formats\\n(MP3, Opus).\",\"format\":\"int32\",\"type\":\"integer\"},\"delivery\":{\"description\":\"The delivery mode for the audio output.\",\"enum\":[\"inline\",\"uri\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Audio data is returned inline in the response.\",\"Audio data is returned as a URI.\"]},\"mime_type\":{\"description\":\"The MIME type of the audio output.\",\"enum\":[\"audio/mp3\",\"audio/ogg_opus\",\"audio/l16\",\"audio/wav\",\"audio/alaw\",\"audio/mulaw\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"MP3 audio format.\",\"OGG Opus audio format.\",\"Raw PCM (L16) audio format.\",\"WAV audio format.\",\"A-law audio format.\",\"Mu-law audio format.\"]},\"sample_rate\":{\"description\":\"Sample rate in Hz.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"audio\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Audio Output\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"AudioResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeExecution\":{\"description\":\"A tool that can be used by the model to execute code.\",\"properties\":{\"type\":{\"const\":\"code_execution\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeExecutionCallStep\":{\"description\":\"Code execution call step.\",\"example\":{\"arguments\":{\"code\":\"print(sum(range(1, 11)))\",\"language\":\"python\"},\"id\":\"code_call_71021\",\"type\":\"code_execution_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/CodeExecutionCallStepArguments\",\"description\":\"Required. The arguments to pass to the code execution.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"code_execution_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"CodeExecutionCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeExecutionCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeExecutionCallStepArguments\":{\"description\":\"The arguments to pass to the code execution.\",\"properties\":{\"code\":{\"description\":\"The code to be executed.\",\"type\":\"string\"},\"language\":{\"description\":\"Programming language of the `code`.\",\"enum\":[\"python\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Python \\u003e= 3.10, with numpy and simpy available.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeExecutionCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"CodeExecutionCallArguments\"},\"CodeExecutionResultStep\":{\"description\":\"Code execution result step.\",\"example\":{\"call_id\":\"code_call_71021\",\"result\":\"55\\n\",\"type\":\"code_execution_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the code execution resulted in an error.\",\"type\":\"boolean\"},\"result\":{\"description\":\"Required. The output of the code execution.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"code_execution_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"CodeExecutionResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeExecutionResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"CodeMenderAgentConfig\":{\"description\":\"Configuration for the CodeMender agent.\",\"properties\":{\"find_request\":{\"$ref\":\"#/$defs/FindRequest\",\"description\":\"Parameters for finding vulnerabilities.\"},\"fix_request\":{\"$ref\":\"#/$defs/FixRequest\",\"description\":\"Parameters for fixing vulnerabilities.\"},\"model\":{\"description\":\"The name of the model to use for the CodeMender agent. One\\nCodeMender session will only use one model.\",\"type\":\"string\"},\"session_config\":{\"$ref\":\"#/$defs/SessionConfig\",\"description\":\"Optional session-specific configurations to override default agent\\nbehavior.\"},\"session_id\":{\"description\":\"Parameter for grouping multiple interactions that belong to\\nthe same CodeMender session.\",\"type\":\"string\"},\"type\":{\"const\":\"code-mender\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CodeMenderAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"ComputerUse\":{\"description\":\"A tool that can be used by the model to interact with the computer.\",\"properties\":{\"disabled_safety_policies\":{\"description\":\"Optional. Disabled safety policies for computer use.\",\"items\":{\"enum\":[\"financial_transactions\",\"sensitive_data_modification\",\"communication_tool\",\"account_creation\",\"data_modification\",\"user_consent_management\",\"legal_terms_and_agreements\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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\":\"array\"},\"enable_prompt_injection_detection\":{\"description\":\"Whether enable the prompt injection detection check on computer-use\\nrequest.\",\"type\":\"boolean\"},\"environment\":{\"description\":\"The environment being operated.\",\"enum\":[\"browser\",\"mobile\",\"desktop\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Operates in a web browser.\",\"Operates in a mobile environment.\",\"Operates in a desktop environment.\"]},\"excluded_predefined_functions\":{\"description\":\"The list of predefined functions that are excluded from the model call.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"type\":{\"const\":\"computer_use\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Content\":{\"description\":\"The content of the response.\",\"oneOf\":[{\"$ref\":\"#/$defs/AudioContent\"},{\"$ref\":\"#/$defs/DocumentContent\"},{\"$ref\":\"#/$defs/ImageContent\"},{\"$ref\":\"#/$defs/TextContent\"},{\"$ref\":\"#/$defs/VideoContent\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Content\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"DeepResearchAgentConfig\":{\"description\":\"Configuration for the Deep Research agent.\",\"properties\":{\"collaborative_planning\":{\"description\":\"Enables human-in-the-loop planning for the Deep Research agent. If set to\\ntrue, the Deep Research agent will provide a research plan in its response.\\nThe agent will then proceed only if the user confirms the plan in the next\\nturn.\",\"type\":\"boolean\"},\"enable_bigquery_tool\":{\"description\":\"Enables bigquery tool for the Deep Research agent.\",\"type\":\"boolean\"},\"thinking_summaries\":{\"$ref\":\"#/$defs/ThinkingSummaries\",\"description\":\"Whether to include thought summaries in the response.\"},\"type\":{\"const\":\"deep-research\"},\"visualization\":{\"description\":\"Whether to include visualizations in the response.\",\"enum\":[\"off\",\"auto\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Do not include visualizations.\",\"Automatically include visualizations.\"]\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"DeepResearchAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"DocumentContent\":{\"description\":\"A document content block.\",\"example\":{\"data\":\"BASE64_ENCODED_DOCUMENT\",\"mime_type\":\"application/pdf\",\"type\":\"document\"},\"properties\":{\"data\":{\"description\":\"The document content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the document.\",\"enum\":[\"application/pdf\",\"text/csv\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"PDF document format\",\"CSV document format\"]},\"type\":{\"const\":\"document\"},\"uri\":{\"description\":\"The URI of the document.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Document\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"DocumentContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"DynamicAgentConfig\":{\"additionalProperties\":true,\"description\":\"Configuration for dynamic agents.\",\"properties\":{\"type\":{\"const\":\"dynamic\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"DynamicAgentConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-unknown-values\":\"disallow\"},\"EgressRule\":{\"description\":\"A single domain allowlist rule with optional header injection.\",\"properties\":{\"credential\":{\"description\":\"Optional. Reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"domain\":{\"description\":\"Domain to allow outbound requests to. Supports wildcards (e.g.\\n'*.googleapis.com'). Use '*' to allow all domains.\",\"type\":\"string\"},\"transform\":{\"description\":\"Headers to inject on all outbound requests matching this domain. Accepts a single dict or a list of dicts. The egress proxy injects these automatically.\",\"oneOf\":[{\"description\":\"A list of headers to inject.\",\"items\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header to inject.\",\"type\":\"object\"},\"type\":\"array\"},{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"A single header injection mapping, e.g., {\\\"Authorization\\\": \\\"Bearer token\\\"}.\",\"type\":\"object\"}]\x7d\x7d,\"required\":[\"domain\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"AllowlistEntry\"},\"EnvVar\":{\"description\":\"An environment variable to set in the execution environment.\",\"properties\":{\"credential\":{\"description\":\"Optional reference to a server-managed Credential resource by ID.\",\"type\":\"string\"},\"value\":{\"description\":\"Direct string value for plain environment variables.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"EnvironmentConfig\":{\"description\":\"Configuration for a custom environment.\",\"examples\":[{\"sources\":[{\"content\":\"You are a data analyst. Always include visualizations and export results as PDF.\",\"target\":\".agents/AGENTS.md\",\"type\":\"inline\"},{\"content\":\"---\\nname: slide-maker\\ndescription: Create HTML slide decks\\n---\\n# Slide Maker\\n\\nWhen asked to create a presentation:\\n1. Analyze the input data\\n2. Create an HTML slide deck with reveal.js\\n3. Save to /workspace/output/slides.html\",\"target\":\".agents/skills/slide-maker/SKILL.md\",\"type\":\"inline\"}],\"type\":\"remote\"},{\"sources\":[{\"source\":\"https://github.com/my-org/my-skills.git\",\"target\":\".agents/skills\",\"type\":\"repository\"},{\"source\":\"gs://my-bucket/my-folder\",\"target\":\"/workspace/data\",\"type\":\"gcs\"}],\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"pypi.org\"},{\"domain\":\"*.github.com\"}]},\"type\":\"remote\"},{\"network\":{\"allowlist\":[{\"domain\":\"api.github.com\",\"transform\":{\"Authorization\":\"Bearer YOUR_GITHUB_TOKEN\"\x7d\x7d]},\"type\":\"remote\"}],\"properties\":{\"env\":{\"additionalProperties\":{\"oneOf\":[{\"$ref\":\"#/$defs/EnvVar\"},{\"type\":\"string\"}]},\"description\":\"Environment variables to set in the sandbox environment.\",\"type\":\"object\"},\"environment_id\":{\"description\":\"Optional. The environment ID for the interaction. If specified, the request will\\nupdate the existing environment instead of creating a new one.\",\"type\":\"string\"},\"network\":{\"description\":\"Network configuration for the environment.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentNetworkEgressAllowlist\"},{\"enum\":[\"disabled\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]},\"sources\":{\"items\":{\"$ref\":\"#/$defs/Source\"},\"type\":\"array\"},\"type\":{\"const\":\"remote\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Inline Sources\",\"External Sources\",\"Network Allowlist\",\"Proxy Credentials\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Environment\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"Environment\",\"x-speakeasy-unknown-values\":\"disallow\"},\"EnvironmentNetworkEgressAllowlist\":{\"description\":\"Network egress configuration for the environment.\",\"example\":{\"allowlist\":[{\"domain\":\"github.com\",\"transform\":[{\"Authorization\":\"Bearer your-token\"}]},{\"domain\":\"*.googleapis.com\"}]},\"properties\":{\"allowlist\":{\"description\":\"List of allowed domains and their configurations. Set to `\\\"disabled\\\"`\\nto block all network egress.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/EgressRule\"},\"type\":\"array\"},{\"enum\":[\"disabled\"],\"title\":\"Disabled\",\"type\":\"string\",\"x-google-enum-descriptions\":[\"All network egress is blocked.\"]}]\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Network Allowlist\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"ExaAISearchConfig\":{\"description\":\"Used to specify configuration for ExaAISearch.\",\"properties\":{\"api_key\":{\"description\":\"Required. The API key for ExaAiSearch.\",\"type\":\"string\"},\"custom_config\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Optional. This field can be used to pass any parameter from the Exa.ai Search API.\",\"type\":\"object\"\x7d\x7d,\"required\":[\"api_key\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FileCitation\":{\"description\":\"A file citation annotation.\",\"properties\":{\"custom_metadata\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"User provided metadata about the retrieved context.\",\"type\":\"object\"},\"document_uri\":{\"description\":\"The URI of the file.\",\"type\":\"string\"},\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"file_name\":{\"description\":\"The name of the file.\",\"type\":\"string\"},\"media_id\":{\"description\":\"Media ID in-case of image citations, if applicable.\",\"type\":\"string\"},\"page_number\":{\"description\":\"Page number of the cited document, if applicable.\",\"format\":\"int32\",\"type\":\"integer\"},\"source\":{\"description\":\"Source attributed for a portion of the text.\",\"type\":\"string\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"file_citation\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FileCitation\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FileContent\":{\"description\":\"Content of a single file in the codebase.\",\"properties\":{\"content\":{\"description\":\"The UTF-8 encoded text content of the file.\",\"type\":\"string\"},\"path\":{\"description\":\"The relative path of the file from the project root.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FileSearch\":{\"description\":\"A tool that can be used by the model to search files.\",\"properties\":{\"file_search_store_names\":{\"description\":\"The file search store names to search.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"metadata_filter\":{\"description\":\"Metadata filter to apply to the semantic retrieval documents and chunks.\",\"type\":\"string\"},\"top_k\":{\"description\":\"The number of semantic retrieval chunks to retrieve.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"file_search\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FileSearchCallStep\":{\"description\":\"File Search call step.\",\"example\":{\"id\":\"file_call_88192\",\"type\":\"file_search_call\"},\"properties\":{\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"file_search_call\"\x7d\x7d,\"required\":[\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FileSearchCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FileSearchCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FileSearchResultStep\":{\"description\":\"File Search result step.\",\"example\":{\"call_id\":\"file_call_88192\",\"type\":\"file_search_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"file_search_result\"\x7d\x7d,\"required\":[\"call_id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FileSearchResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FileSearchResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"Filter\":{\"description\":\"Config for filters.\",\"properties\":{\"metadata_filter\":{\"description\":\"Optional. String for metadata filtering.\",\"type\":\"string\"},\"vector_distance_threshold\":{\"description\":\"Optional. Only returns contexts with vector distance smaller than the\\nthreshold.\",\"format\":\"double\",\"type\":\"number\"},\"vector_similarity_threshold\":{\"description\":\"Optional. Only returns contexts with vector similarity larger than the\\nthreshold.\",\"format\":\"double\",\"type\":\"number\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FindRequest\":{\"description\":\"Request parameters specific to FIND sessions, used for discovering\\nvulnerabilities in a codebase.\",\"properties\":{\"description\":{\"description\":\"Additional context or custom instructions provided by the user to guide\\nthe vulnerability analysis.\",\"type\":\"string\"},\"finding_id\":{\"description\":\"The identifier of a specific finding to verify. This is primarily used in\\nVERIFY mode to focus the agent's execution-based validation on a single\\nvulnerability.\",\"type\":\"string\"},\"mode\":{\"description\":\"The mode of the find session.\",\"enum\":[\"scan\",\"verify\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Fast scan using only the initial classifier.\",\"Performs classification followed by detailed investigation.\"]},\"source_files\":{\"description\":\"A list of source files to provide as context for the scan.\",\"items\":{\"$ref\":\"#/$defs/FileContent\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"FixRequest\":{\"description\":\"Request parameters specific to FIX sessions, used for generating and\\nvalidating security patches.\",\"properties\":{\"description\":{\"description\":\"Additional context or custom instructions provided by the user to guide\\nthe patch generation process.\",\"type\":\"string\"},\"finding_id\":{\"description\":\"The identifier of the specific security finding to be remediated. This ID\\nmaps to a previously discovered vulnerability.\",\"type\":\"string\"},\"source_files\":{\"description\":\"A list of source files providing context for the remediation. These files\\nare typically the ones containing the identified vulnerability.\",\"items\":{\"$ref\":\"#/$defs/FileContent\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Function\":{\"description\":\"A tool that can be used by the model.\",\"properties\":{\"description\":{\"description\":\"A description of the function.\",\"type\":\"string\"},\"name\":{\"description\":\"The name of the function.\",\"type\":\"string\"},\"parameters\":{\"description\":\"The JSON Schema for the function's parameters.\"},\"type\":{\"const\":\"function\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Function\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FunctionCallStep\":{\"description\":\"A function tool call step.\",\"example\":{\"arguments\":{\"location\":\"Boston, MA\"},\"id\":\"call_98231\",\"name\":\"get_weather\",\"type\":\"function_call\"},\"properties\":{\"arguments\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Required. The arguments to pass to the function.\",\"type\":\"object\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"name\":{\"description\":\"Required. The name of the tool to call.\",\"type\":\"string\"},\"type\":{\"const\":\"function_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"name\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FunctionCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FunctionCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FunctionResultStep\":{\"description\":\"Result of a function tool call.\",\"example\":{\"call_id\":\"call_98231\",\"name\":\"get_weather\",\"result\":[{\"text\":\"{\\\"weather\\\":\\\"sunny\\\"}\",\"type\":\"text\"}],\"type\":\"function_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the tool call resulted in an error.\",\"type\":\"boolean\"},\"name\":{\"description\":\"The name of the tool that was called.\",\"type\":\"string\"},\"result\":{\"description\":\"Required. The result of the tool call.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/FunctionResultSubContent\"},\"type\":\"array\"},{\"additionalProperties\":true,\"type\":\"object\"},{\"type\":\"string\"}]},\"type\":{\"const\":\"function_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"FunctionResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"FunctionResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"FunctionResultSubContent\":{\"oneOf\":[{\"$ref\":\"#/$defs/ImageContent\"},{\"$ref\":\"#/$defs/TextContent\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"FunctionResultSubcontent\"},\"GenerationConfig\":{\"description\":\"Configuration parameters for model interactions.\",\"properties\":{\"image_config\":{\"$ref\":\"#/$defs/ImageConfig\",\"deprecated\":true,\"description\":\"Configuration for image interaction.\"},\"max_output_tokens\":{\"description\":\"The maximum number of tokens to include in the response.\",\"format\":\"int32\",\"type\":\"integer\"},\"seed\":{\"description\":\"Seed used in decoding for reproducibility.\",\"format\":\"int32\",\"type\":\"integer\"},\"speech_config\":{\"description\":\"Optional. Speech and multi-speaker configuration.\",\"oneOf\":[{\"$ref\":\"#/$defs/SpeakerConfig\"},{\"items\":{\"$ref\":\"#/$defs/SpeechConfig\"},\"type\":\"array\"}]},\"stop_sequences\":{\"description\":\"A list of character sequences that will stop output interaction.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"temperature\":{\"deprecated\":true,\"description\":\"Controls the randomness of the output.\",\"format\":\"float\",\"type\":\"number\"},\"thinking_level\":{\"$ref\":\"#/$defs/ThinkingLevel\",\"description\":\"The level of thought tokens that the model should generate.\"},\"thinking_summaries\":{\"$ref\":\"#/$defs/ThinkingSummaries\",\"description\":\"Whether to include thought summaries in the response.\"},\"tool_choice\":{\"description\":\"The tool choice configuration.\",\"oneOf\":[{\"$ref\":\"#/$defs/ToolChoiceConfig\"},{\"$ref\":\"#/$defs/ToolChoiceType\"}]},\"top_p\":{\"deprecated\":true,\"description\":\"The maximum cumulative probability of tokens to consider when sampling.\",\"format\":\"float\",\"type\":\"number\"},\"transcription_config\":{\"$ref\":\"#/$defs/TranscriptionConfig\",\"description\":\"Optional. Configuration for speech recognition (transcription). If present, ASR is\\nenabled.\"},\"video_config\":{\"$ref\":\"#/$defs/VideoConfig\",\"description\":\"Configuration for video generation.\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GenerationConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMaps\":{\"description\":\"A tool that can be used by the model to call Google Maps.\",\"properties\":{\"enable_widget\":{\"description\":\"Whether to return a widget context token in the tool call result of the\\nresponse.\",\"type\":\"boolean\"},\"latitude\":{\"description\":\"The latitude of the user's location.\",\"format\":\"double\",\"type\":\"number\"},\"longitude\":{\"description\":\"The longitude of the user's location.\",\"format\":\"double\",\"type\":\"number\"},\"type\":{\"const\":\"google_maps\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMapsCallStep\":{\"description\":\"Google Maps call step.\",\"example\":{\"arguments\":{\"queries\":[\"parks near San Francisco\"]},\"id\":\"maps_call_39201\",\"type\":\"google_maps_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/GoogleMapsCallStepArguments\",\"description\":\"The arguments to pass to the Google Maps tool.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_maps_call\"\x7d\x7d,\"required\":[\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleMapsCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMapsCallStepArguments\":{\"description\":\"The arguments to pass to the Google Maps tool.\",\"properties\":{\"queries\":{\"description\":\"The queries to be executed.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleMapsCallArguments\"},\"GoogleMapsResultItem\":{\"description\":\"The result of the Google Maps.\",\"properties\":{\"places\":{\"items\":{\"$ref\":\"#/$defs/GoogleMapsResultPlaces\"},\"type\":\"array\"},\"widget_context_token\":{\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsResult\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleMapsResult\"},\"GoogleMapsResultPlaces\":{\"properties\":{\"name\":{\"type\":\"string\"},\"place_id\":{\"type\":\"string\"},\"review_snippets\":{\"items\":{\"$ref\":\"#/$defs/ReviewSnippet\"},\"type\":\"array\"},\"url\":{\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleMapsResultStep\":{\"description\":\"Google Maps result step.\",\"example\":{\"call_id\":\"maps_call_39201\",\"result\":[{\"places\":[{\"name\":\"Golden Gate Park\",\"place_id\":\"ChIJIQBpAG2ahYAR9R7bNdTLg8M\",\"url\":\"https://maps.google.com/?cid=12345\"}]}],\"type\":\"google_maps_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"result\":{\"items\":{\"$ref\":\"#/$defs/GoogleMapsResultItem\"},\"type\":\"array\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_maps_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleMapsResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleMapsResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearch\":{\"description\":\"A tool that can be used by the model to search Google.\",\"properties\":{\"search_types\":{\"description\":\"The types of search grounding to enable.\",\"items\":{\"enum\":[\"web_search\",\"image_search\",\"enterprise_web_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Setting this field enables web search. Only text results are returned.\",\"Setting this field enables image search. Image bytes are returned.\",\"Setting this field enables enterprise web search.\"]},\"type\":\"array\"},\"type\":{\"const\":\"google_search\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearchCallStep\":{\"description\":\"Google Search call step.\",\"example\":{\"arguments\":{\"queries\":[\"Who won the men's 100m in Paris 2024?\"]},\"id\":\"search_call_19201\",\"type\":\"google_search_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/GoogleSearchCallStepArguments\",\"description\":\"Required. The arguments to pass to Google Search.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"search_type\":{\"description\":\"The type of search grounding enabled.\",\"enum\":[\"web_search\",\"image_search\",\"enterprise_web_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Setting this field enables web search. Only text results are returned.\",\"Setting this field enables image search. Image bytes are returned.\",\"Setting this field enables enterprise web search.\"]},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_search_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleSearchCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"GoogleSearchCallStepArguments\":{\"description\":\"The arguments to pass to Google Search.\",\"properties\":{\"queries\":{\"description\":\"Web search queries for the following-up web search.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleSearchCallArguments\"},\"GoogleSearchResultItem\":{\"description\":\"The result of the Google Search.\",\"properties\":{\"search_suggestions\":{\"description\":\"Web content snippet that can be embedded in a web page or an app webview.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchResult\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"GoogleSearchResult\"},\"GoogleSearchResultStep\":{\"description\":\"Google Search result step.\",\"example\":{\"call_id\":\"search_call_19201\",\"result\":[{\"search_suggestions\":\"\\u003cdiv class=\\\"container\\\"\\u003e...\\u003c/div\\u003e\"}],\"type\":\"google_search_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the Google Search resulted in an error.\",\"type\":\"boolean\"},\"result\":{\"description\":\"Required. The results of the Google Search.\",\"items\":{\"$ref\":\"#/$defs/GoogleSearchResultItem\"},\"type\":\"array\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"google_search_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"GoogleSearchResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"GoogleSearchResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"HarmCategory\":{\"enum\":[\"hate_speech\",\"dangerous_content\",\"harassment\",\"sexually_explicit\",\"civic_integrity\",\"image_hate\",\"image_dangerous_content\",\"image_harassment\",\"image_sexually_explicit\",\"jailbreak\"],\"type\":\"string\",\"x-google-enum-deprecated\":[false,false,false,false,true,false,false,false,false,false],\"x-google-enum-descriptions\":[\"Content that promotes violence or incites hatred against individuals or\\ngroups based on certain attributes.\",\"Content that promotes, facilitates, or enables dangerous activities.\",\"Abusive, threatening, or content intended to bully, torment, or ridicule.\",\"Content that contains sexually explicit material.\",\"Deprecated: Election filter is not longer supported.\\nThe harm category is civic integrity.\",\"Images that contain hate speech.\",\"Images that contain dangerous content.\",\"Images that contain harassment.\",\"Images that contain sexually explicit content.\",\"Prompts designed to bypass safety filters.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"HarmCategory\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"HybridSearch\":{\"description\":\"Config for Hybrid Search.\",\"properties\":{\"alpha\":{\"description\":\"Optional. Alpha value controls the weight between dense and sparse vector search\\nresults.\",\"format\":\"float\",\"type\":\"number\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ImageConfig\":{\"deprecated\":true,\"description\":\"The configuration for image interaction.\",\"properties\":{\"aspect_ratio\":{\"description\":\"The aspect ratio of the image to generate. Supported aspect ratios: 1:1,\\n2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9.\\n\\nIf not specified, the model will choose a default aspect ratio based on any\\nreference images provided.\",\"enum\":[\"1:1\",\"2:3\",\"3:2\",\"3:4\",\"4:3\",\"4:5\",\"5:4\",\"9:16\",\"16:9\",\"21:9\",\"1:8\",\"8:1\",\"1:4\",\"4:1\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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.\"]},\"image_size\":{\"description\":\"Specifies the size of generated images. Supported values are `1K`, `2K`,\\n`4K`. If not specified, the model will use default value `1K`.\",\"enum\":[\"1K\",\"2K\",\"4K\",\"512\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"1K image size.\",\"2K image size.\",\"4K image size.\",\"512 image size.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ImageContent\":{\"description\":\"An image content block.\",\"example\":{\"data\":\"BASE64_ENCODED_IMAGE\",\"mime_type\":\"image/png\",\"type\":\"image\"},\"properties\":{\"data\":{\"description\":\"The image content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the image.\",\"enum\":[\"image/png\",\"image/jpeg\",\"image/webp\",\"image/heic\",\"image/heif\",\"image/gif\",\"image/bmp\",\"image/tiff\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"PNG image format\",\"JPEG image format\",\"WebP image format\",\"HEIC image format\",\"HEIF image format\",\"GIF image format\",\"BMP image format\",\"TIFF image format\"]},\"resolution\":{\"$ref\":\"#/$defs/MediaResolution\",\"description\":\"The resolution of the media.\"},\"type\":{\"const\":\"image\"},\"uri\":{\"description\":\"The URI of the image.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Image\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ImageContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ImageResponseFormat\":{\"description\":\"Configuration for image output format.\",\"example\":{\"aspect_ratio\":\"16:9\",\"image_size\":\"1K\",\"mime_type\":\"image/jpeg\",\"type\":\"image\"},\"properties\":{\"aspect_ratio\":{\"description\":\"The aspect ratio for the image output.\",\"enum\":[\"1:1\",\"2:3\",\"3:2\",\"3:4\",\"4:3\",\"4:5\",\"5:4\",\"9:16\",\"16:9\",\"21:9\",\"1:8\",\"8:1\",\"1:4\",\"4:1\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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.\"]},\"delivery\":{\"description\":\"The delivery mode for the image output.\",\"enum\":[\"inline\",\"uri\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Image data is returned inline in the response.\",\"Image data is returned as a URI.\"]},\"image_size\":{\"description\":\"The size of the image output.\",\"enum\":[\"512\",\"1K\",\"2K\",\"4K\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"512px image size.\",\"1K image size.\",\"2K image size.\",\"4K image size.\"]},\"mime_type\":{\"description\":\"The MIME type of the image output.\",\"enum\":[\"image/jpeg\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"JPEG image format.\"]},\"type\":{\"const\":\"image\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Image Output\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ImageResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"InteractionsInput\":{\"description\":\"The input for the interaction.\",\"oneOf\":[{\"$ref\":\"#/$defs/Content\"},{\"items\":{\"$ref\":\"#/$defs/Step\"},\"title\":\"StepList\",\"type\":\"array\"},{\"items\":{\"$ref\":\"#/$defs/Content\"},\"title\":\"ContentList\",\"type\":\"array\"},{\"type\":\"string\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"McpServer\":{\"description\":\"A MCPServer is a server that can be called by the model to perform actions.\",\"properties\":{\"allowed_tools\":{\"description\":\"The allowed tools.\",\"items\":{\"$ref\":\"#/$defs/AllowedTools\"},\"type\":\"array\"},\"headers\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"Optional: Fields for authentication headers, timeouts, etc., if needed.\",\"type\":\"object\"},\"name\":{\"description\":\"The name of the MCPServer.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server\"},\"url\":{\"description\":\"The full URL for the MCPServer endpoint.\\nExample: \\\"https://api.example.com/mcp\\\"\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServer\"},\"McpServerToolCallStep\":{\"description\":\"MCPServer tool call step.\",\"example\":{\"arguments\":{\"income\":120000,\"state\":\"CA\"},\"id\":\"mcp_call_29012\",\"name\":\"calculate_tax\",\"server_name\":\"financial_mcp_server\",\"type\":\"mcp_server_tool_call\"},\"properties\":{\"arguments\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Required. The JSON object of arguments for the function.\",\"type\":\"object\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"name\":{\"description\":\"Required. The name of the tool which was called.\",\"type\":\"string\"},\"server_name\":{\"description\":\"Required. The name of the used MCP server.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server_tool_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"name\",\"server_name\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"McpServerToolCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"MCPServerToolCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServerToolCallStep\"},\"McpServerToolResultStep\":{\"description\":\"MCPServer tool result step.\",\"example\":{\"call_id\":\"mcp_call_29012\",\"name\":\"calculate_tax\",\"result\":{\"tax_due\":32400},\"server_name\":\"financial_mcp_server\",\"type\":\"mcp_server_tool_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"name\":{\"description\":\"Name of the tool which is called for this specific tool call.\",\"type\":\"string\"},\"result\":{\"description\":\"Required. The output from the MCP server call. Can be simple text or rich content.\",\"oneOf\":[{\"items\":{\"$ref\":\"#/$defs/FunctionResultSubContent\"},\"type\":\"array\"},{\"additionalProperties\":true,\"type\":\"object\"},{\"type\":\"string\"}]},\"server_name\":{\"description\":\"The name of the used MCP server.\",\"type\":\"string\"},\"type\":{\"const\":\"mcp_server_tool_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"McpServerToolResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"MCPServerToolResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"MCPServerToolResultStep\"},\"MediaProcessing\":{\"oneOf\":[{\"$ref\":\"#/$defs/StaticMediaProcessing\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"MediaResolution\":{\"enum\":[\"low\",\"medium\",\"high\",\"ultra_high\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Low resolution.\",\"Medium resolution.\",\"High resolution.\",\"Ultra high resolution.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"ModelInteraction\":{\"description\":\"Interaction for generating the completion using models.\",\"properties\":{\"background\":{\"description\":\"Input only. Whether to run the model interaction in the background.\",\"type\":\"boolean\",\"writeOnly\":true},\"cached_content\":{\"deprecated\":true,\"description\":\"The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: cachedContents/{cachedContent}\",\"type\":\"string\"},\"continuation_token\":{\"description\":\"Opaque token to resume a long decode. Output: set when status is\\nINCOMPLETE and decoding can be resumed. Input: pass the latest token\\nback unchanged in CreateInteraction to continue decoding.\",\"format\":\"byte\",\"type\":\"string\"},\"created\":{\"description\":\"Required. Output only. The time at which the response was created in ISO 8601 format\\n(YYYY-MM-DDThh:mm:ssZ).\",\"readOnly\":true,\"type\":\"string\"},\"environment\":{\"description\":\"The environment configuration for the interaction. Can be an object\\nspecifying remote environment sources or a string referencing an existing\\nenvironment ID.\",\"oneOf\":[{\"$ref\":\"#/$defs/EnvironmentConfig\"},{\"type\":\"string\"}]},\"environment_id\":{\"description\":\"Output only. The environment ID for the interaction. Only populated if environment\\nconfig is set in the request.\",\"readOnly\":true,\"type\":\"string\"},\"generation_config\":{\"$ref\":\"#/$defs/GenerationConfig\",\"description\":\"Input only. Configuration parameters for the model interaction.\",\"writeOnly\":true},\"id\":{\"description\":\"Required. Output only. A unique identifier for the interaction completion.\",\"readOnly\":true,\"type\":\"string\"},\"input\":{\"$ref\":\"#/$defs/InteractionsInput\"},\"labels\":{\"additionalProperties\":{\"type\":\"string\"},\"description\":\"The labels with user-defined metadata for the request.\\n\\nLabel keys and values can be no longer than 63 characters\\n(Unicode codepoints) and can only contain lowercase letters, numeric\\ncharacters, underscores, and dashes. International characters are allowed.\\nLabel values are optional. Label keys must start with a letter.\",\"type\":\"object\"},\"model\":{\"$ref\":\"#/$defs/ModelOption\",\"description\":\"The name of the `Model` used for generating the interaction.\"},\"previous_interaction_id\":{\"description\":\"The ID of the previous interaction, if any.\",\"type\":\"string\"},\"response_format\":{\"description\":\"Enforces that the generated response is a JSON object that complies with\\nthe JSON schema specified in this field.\",\"oneOf\":[{\"$ref\":\"#/$defs/ResponseFormat\"},{\"items\":{\"$ref\":\"#/$defs/ResponseFormat\"},\"title\":\"ResponseFormatList\",\"type\":\"array\"}]},\"response_mime_type\":{\"deprecated\":true,\"description\":\"The mime type of the response. This is required if response_format is set.\",\"type\":\"string\"},\"response_modalities\":{\"deprecated\":true,\"description\":\"The requested modalities of the response (TEXT, IMAGE, AUDIO).\",\"items\":{\"$ref\":\"#/$defs/ResponseModality\"},\"type\":\"array\"},\"safety_settings\":{\"description\":\"Safety settings for the interaction.\",\"items\":{\"$ref\":\"#/$defs/SafetySetting\"},\"type\":\"array\"},\"service_tier\":{\"$ref\":\"#/$defs/ServiceTier\",\"description\":\"The service tier for the interaction.\"},\"status\":{\"description\":\"Required. Output only. The status of the interaction.\",\"enum\":[\"in_progress\",\"requires_action\",\"completed\",\"failed\",\"cancelled\",\"incomplete\",\"budget_exceeded\",\"queued\"],\"readOnly\":true,\"type\":\"string\",\"x-google-enum-deprecated\":[false,false,false,false,false,false,true,false],\"x-google-enum-descriptions\":[\"The interaction is in progress.\",\"The interaction requires action/input from the user.\",\"The interaction is completed.\",\"The interaction failed.\",\"The interaction was cancelled.\",\"The interaction is completed, but contains incomplete results (e.g.\\nhitting max_tokens).\",\"Deprecated: Token and execution budget exhaustion returns INCOMPLETE\\n(11).\",\"The interaction is queued, waiting for processing (e.g. waiting for\\noff-peak capacity).\"]},\"store\":{\"description\":\"Input only. Whether to store the response and request for later retrieval.\",\"type\":\"boolean\",\"writeOnly\":true},\"stream\":{\"default\":true,\"description\":\"Input only. Whether the interaction is streamed as server-sent events. Defaults to true; set false to receive one complete interaction.\",\"type\":\"boolean\",\"writeOnly\":true},\"system_instruction\":{\"description\":\"System instruction for the interaction.\",\"type\":\"string\"},\"tools\":{\"description\":\"A list of tool declarations the model may call during interaction.\",\"items\":{\"$ref\":\"#/$defs/Tool\"},\"type\":\"array\"},\"updated\":{\"description\":\"Required. Output only. The time at which the response was last updated in ISO 8601 format\\n(YYYY-MM-DDThh:mm:ssZ).\",\"readOnly\":true,\"type\":\"string\"},\"webhook_config\":{\"$ref\":\"#/$defs/WebhookConfig\",\"description\":\"Optional. Webhook configuration for receiving notifications when the\\ninteraction completes.\"\x7d\x7d,\"required\":[\"created\",\"id\",\"model\",\"status\",\"steps\",\"updated\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"CreateModelInteractionParamsNonStreaming\",\"representation\":\"input\"},{\"group\":\"interactions\",\"name\":\"CreateModelInteractionParamsStreaming\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"CreateModelInteraction\"},\"ModelOption\":{\"default\":\"gemini-3.8-flash\",\"description\":\"The model that will complete your prompt.\\\\n\\\\nSee [models](https://ai.google.dev/gemini-api/docs/models) for additional details.\",\"enum\":[\"gemma-4-26b-a4b-it\",\"gemma-4-31b-it\",\"gemini-flash-latest\",\"gemini-flash-lite-latest\",\"gemini-pro-latest\",\"gemini-3.5-flash-lite\",\"gemini-2.5-flash-image\",\"gemini-3-flash-preview\",\"gemini-3.1-pro-preview\",\"gemini-3.1-pro-preview-customtools\",\"gemini-3.1-flash-lite\",\"gemini-3.1-flash-lite-image\",\"gemini-3-pro-image\",\"nano-banana-pro-preview\",\"gemini-3.1-flash-image\",\"gemini-nano-banana-2.1\",\"gemini-3.1-flash-tts-preview\",\"gemini-3.5-flash\",\"gemini-3.6-flash\",\"gemini-3.7-flash\",\"gemini-3.8-flash\",\"gemini-3.8-flash-tts\",\"gemini-3.8-flash-lite-tts\",\"lyria-3-clip-preview\",\"lyria-3-pro-preview\",\"gemini-robotics-er-2-preview\",\"lyria-3.5\",\"gemini-omni-1.1-flash\",\"gemini-omni-flash-preview\"],\"title\":\"Model\",\"type\":\"string\",\"x-speakeasy-cli-catalog\":{\"command\":\"models\",\"default\":\"gemini-3.8-flash\",\"description\":\"Bare \\\"models\\\" prints the curated model list built into this CLI (offline, no request). The default model is used by \\\"agent run\\\" whenever the request body names neither \\\"model\\\" nor \\\"agent\\\". Use \\\"models list\\\" and \\\"models get\\\" for the live API's models and metadata.\",\"summary\":\"Show the curated offline model catalog; list/get query the live API\"},\"x-speakeasy-enum-descriptions\":[\"Gemma 4 26B A4B IT\",\"Gemma 4 31B IT\",\"Latest release of Gemini Flash\",\"Latest release of Gemini Flash-Lite\",\"Latest release of Gemini Pro\",\"Our smallest and most cost effective model, built for at scale usage.\",\"Our native image generation model, optimized for speed, flexibility, and contextual understanding. Text input and output is priced the same as 2.5 Flash.\",\"Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.\",\"Our latest SOTA reasoning model with unprecedented depth and nuance, and powerful multimodal understanding and coding capabilities.\",\"Gemini 3.1 Pro Preview optimized for custom tool usage\",\"Our most cost-efficient model, optimized for high-volume agentic tasks, translation, and simple data processing.\",\"Gemini 3.1 Flash Lite Image.\",\"Gemini 3 Pro Image\",\"Gemini 3 Pro Image Preview\",\"Gemini 3.1 Flash Image.\",\"Gemini Nano Banana 2.1.\",\"Gemini 3.1 Flash TTS: Powerful, low-latency speech generation. Enjoy natural outputs, steerable prompts, and new expressive audio tags for precise narration control.\",\"Gemini 3.5 Flash - Our earlier Flash model, built for speed and foundational performance across routine, high-throughput workloads.\",\"Gemini 3.6 Flash - Our previous generation Flash model, balancing speed and multimodal capabilities across general agentic and everyday tasks.\",\"Gemini 3.7 Flash - Our high-speed, efficient Flash model built for everyday coding, agentic tool use, and reliable multi-step execution.\",\"Gemini 3.8 Flash - Our most intelligent Flash model, engineered for long-horizon software engineering, autonomous agents, and complex enterprise workflows.\",\"Gemini 3.8 Flash TTS - Flagship TTS model for Voice Design and dual-speaker screenplay control. Prompt custom vocal personas, direct line-by-line delivery, and add vocal bursts.\",\"Gemini 3.8 Flash Lite TTS - High-speed and cost-efficient, ideal for rapid dubbing, media localization, and high-throughput voice agents. Direct replacement for gemini-3.1-flash-tts-preview.\",\"Our low-latency, music generation model optimized for high-fidelity audio clips and precise rhythmic control.\",\"Our advanced, full-song generative model with deep compositional understanding, optimized for precise structural control and complex transitions across diverse musical styles.\",\"Gemini Robotics Embodied Reasoning 2 Preview\",\"Our flagship music generation model, optimized for full-length songs with complex structural coherence.\",\"Our high-performance multimodal model designed for fast, conversational video generation, editing, and cinematic control.\",\"Preview release of our multimodal model for conversational video generation, editing, and cinematic control.\"],\"x-speakeasy-enum-format\":\"union\",\"x-speakeasy-enum-groups\":{\"gemini-2.5-flash-image\":\"Image\",\"gemini-3-flash-preview\":\"Gemini\",\"gemini-3-pro-image\":\"Image\",\"gemini-3.1-flash-image\":\"Image\",\"gemini-3.1-flash-lite\":\"Gemini\",\"gemini-3.1-flash-lite-image\":\"Image\",\"gemini-3.1-flash-tts-preview\":\"Speech\",\"gemini-3.1-pro-preview\":\"Gemini\",\"gemini-3.1-pro-preview-customtools\":\"Gemini\",\"gemini-3.5-flash\":\"Gemini\",\"gemini-3.5-flash-lite\":\"Gemini\",\"gemini-3.6-flash\":\"Gemini\",\"gemini-3.7-flash\":\"Gemini\",\"gemini-3.8-flash\":\"Gemini\",\"gemini-3.8-flash-lite-tts\":\"Speech\",\"gemini-3.8-flash-tts\":\"Speech\",\"gemini-flash-latest\":\"Gemini\",\"gemini-flash-lite-latest\":\"Gemini\",\"gemini-nano-banana-2.1\":\"Image\",\"gemini-omni-1.1-flash\":\"Video\",\"gemini-omni-flash-preview\":\"Video\",\"gemini-pro-latest\":\"Gemini\",\"gemini-robotics-er-2-preview\":\"Robotics\",\"gemma-4-26b-a4b-it\":\"Gemma\",\"gemma-4-31b-it\":\"Gemma\",\"lyria-3-clip-preview\":\"Music\",\"lyria-3-pro-preview\":\"Music\",\"lyria-3.5\":\"Music\",\"nano-banana-pro-preview\":\"Image\"},\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Model\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"Model\",\"x-speakeasy-unknown-values\":\"allow\"},\"ModelOutputStep\":{\"description\":\"Output generated by the model.\",\"example\":{\"content\":[{\"text\":\"The capital of France is Paris.\",\"type\":\"text\"}],\"type\":\"model_output\"},\"properties\":{\"content\":{\"items\":{\"$ref\":\"#/$defs/Content\"},\"type\":\"array\"},\"error\":{\"$ref\":\"#/$defs/Status\",\"deprecated\":true,\"description\":\"The error result of the operation in case of failure or cancellation.\"},\"type\":{\"const\":\"model_output\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"ModelOutputStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ModelOutputStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ParallelAISearchConfig\":{\"description\":\"Used to specify configuration for ParallelAISearch.\",\"properties\":{\"api_key\":{\"description\":\"Optional. The API key for ParallelAiSearch.\",\"type\":\"string\"},\"custom_config\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Optional. Custom configs for ParallelAiSearch.\",\"type\":\"object\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"PlaceCitation\":{\"description\":\"A place citation annotation.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"name\":{\"description\":\"Title of the place.\",\"type\":\"string\"},\"place_id\":{\"description\":\"The ID of the place, in `places/{place_id}` format.\",\"type\":\"string\"},\"review_snippets\":{\"description\":\"Snippets of reviews that are used to generate answers about the\\nfeatures of a given place in Google Maps.\",\"items\":{\"$ref\":\"#/$defs/ReviewSnippet\"},\"type\":\"array\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"type\":{\"const\":\"place_citation\"},\"url\":{\"description\":\"URI reference of the place.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"PlaceCitation\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ProcessingCallStep\":{\"description\":\"A server-initiated processing step for media analysis (e.g. video\\nunderstanding).\",\"properties\":{\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"processing_call\"\x7d\x7d,\"required\":[\"id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ProcessingCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ProcessingResultStep\":{\"description\":\"The result of a server-initiated media processing step.\",\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"processing_result\"\x7d\x7d,\"required\":[\"call_id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ProcessingResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"RagResource\":{\"description\":\"The definition of the Rag resource.\",\"properties\":{\"rag_corpus\":{\"description\":\"Optional. RagCorpora resource name.\",\"type\":\"string\"},\"rag_file_ids\":{\"description\":\"Optional. rag_file_id. The files should be in the same rag_corpus set in\\nrag_corpus field.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RagRetrievalConfig\":{\"description\":\"Specifies the context retrieval config.\",\"properties\":{\"filter\":{\"$ref\":\"#/$defs/Filter\",\"description\":\"Optional. Config for filters.\"},\"hybrid_search\":{\"$ref\":\"#/$defs/HybridSearch\",\"description\":\"Optional. Config for Hybrid Search.\"},\"ranking\":{\"$ref\":\"#/$defs/Ranking\",\"description\":\"Optional. Config for ranking and reranking.\"},\"top_k\":{\"description\":\"Optional. The number of contexts to retrieve.\",\"format\":\"int32\",\"type\":\"integer\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RagStoreConfig\":{\"description\":\"Use to specify configuration for RAG Store.\",\"properties\":{\"rag_resources\":{\"description\":\"Optional. The representation of the rag source.\",\"items\":{\"$ref\":\"#/$defs/RagResource\"},\"type\":\"array\"},\"rag_retrieval_config\":{\"$ref\":\"#/$defs/RagRetrievalConfig\",\"description\":\"Optional. The retrieval config for the Rag query.\"},\"similarity_top_k\":{\"deprecated\":true,\"description\":\"Optional. Number of top k results to return from the selected corpora.\",\"format\":\"int32\",\"type\":\"integer\"},\"vector_distance_threshold\":{\"deprecated\":true,\"description\":\"Optional. Only return results with vector distance smaller than the threshold.\",\"format\":\"double\",\"type\":\"number\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RankService\":{\"description\":\"Config for Rank Service.\",\"properties\":{\"model_name\":{\"description\":\"Optional. The model name of the rank service.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Ranking\":{\"description\":\"Config for ranking and reranking.\",\"properties\":{\"model_name\":{\"description\":\"Optional. The model name of the rank service.\",\"type\":\"string\"},\"rank_service\":{\"$ref\":\"#/$defs/RankService\",\"description\":\"Config for Rank Service.\"},\"ranking_config\":{\"const\":\"rank_service\"\x7d\x7d,\"required\":[\"ranking_config\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"ResponseFormat\":{\"oneOf\":[{\"$ref\":\"#/$defs/AudioResponseFormat\"},{\"$ref\":\"#/$defs/ImageResponseFormat\"},{\"$ref\":\"#/$defs/TextResponseFormat\"},{\"$ref\":\"#/$defs/VideoResponseFormat\"},{\"additionalProperties\":true,\"type\":\"object\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ResponseModality\":{\"enum\":[\"text\",\"image\",\"audio\",\"video\",\"document\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Indicates the model should return text.\",\"Indicates the model should return images.\",\"Indicates the model should return audio.\",\"Indicates the model should return video.\",\"Indicates the model should return documents.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"Retrieval\":{\"description\":\"A tool that can be used by the model to retrieve files.\",\"properties\":{\"exa_ai_search_config\":{\"$ref\":\"#/$defs/ExaAISearchConfig\",\"description\":\"Used to specify configuration for ExaAISearch.\"},\"parallel_ai_search_config\":{\"$ref\":\"#/$defs/ParallelAISearchConfig\",\"description\":\"Used to specify configuration for ParallelAISearch.\"},\"rag_store_config\":{\"$ref\":\"#/$defs/RagStoreConfig\",\"description\":\"Used to specify configuration for RagStore.\"},\"retrieval_types\":{\"description\":\"The types of file retrieval to enable.\",\"items\":{\"enum\":[\"vertex_ai_search\",\"rag_store\",\"exa_ai_search\",\"parallel_ai_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"\",\"\",\"\",\"\"]},\"type\":\"array\"},\"type\":{\"const\":\"retrieval\"},\"vertex_ai_search_config\":{\"$ref\":\"#/$defs/VertexAISearchConfig\",\"description\":\"Used to specify configuration for VertexAISearch.\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"RetrievalCallStep\":{\"description\":\"Retrieval call step.\\nUsed by Vertex Retrieval tools such as Parallel AI, Exa AI, Vertex AI Search,\\netc. RetrievalType decides which tool is used.\",\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/RetrievalStepArguments\",\"description\":\"Required. The arguments to pass to the retrieval tool.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"retrieval_type\":{\"description\":\"The type of retrieval tools.\",\"enum\":[\"vertex_ai_search\",\"rag_store\",\"exa_ai_search\",\"parallel_ai_search\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"\",\"\",\"\",\"\"]},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"retrieval_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"RetrievalCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"RetrievalResultStep\":{\"description\":\"Vertex Retrieval result step.\\nUsed by Vertex Retrieval tools such as Parallel AI, Exa AI, Vertex AI Search,\\netc.\",\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the retrieval resulted in an error.\",\"type\":\"boolean\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"retrieval_result\"\x7d\x7d,\"required\":[\"call_id\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"RetrievalResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"RetrievalStepArguments\":{\"description\":\"The arguments to pass to Retrieval tools.\",\"properties\":{\"queries\":{\"description\":\"Queries for Retrieval information.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"RetrievalCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"RetrievalCallArguments\"},\"ReviewSnippet\":{\"description\":\"Encapsulates a snippet of a user review that answers a question about\\nthe features of a specific place in Google Maps.\",\"properties\":{\"review_id\":{\"description\":\"The ID of the review snippet.\",\"type\":\"string\"},\"title\":{\"description\":\"Title of the review.\",\"type\":\"string\"},\"url\":{\"description\":\"A link that corresponds to the user review on Google Maps.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SafetySetting\":{\"description\":\"A safety setting that affects the safety-blocking behavior.\\n\\nA SafetySetting consists of a\\nharm category and a\\nthreshold for that\\ncategory.\",\"properties\":{\"method\":{\"description\":\"Optional. The method for blocking content. If not specified, the default\\nbehavior is to use the probability score.\",\"enum\":[\"severity\",\"probability\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"The harm block method uses both probability and severity scores.\",\"The harm block method uses the probability score.\"]},\"threshold\":{\"description\":\"Required. The threshold for blocking content. If the harm probability\\nexceeds this threshold, the content will be blocked.\",\"enum\":[\"block_low_and_above\",\"block_medium_and_above\",\"block_only_high\",\"block_none\",\"off\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Block content with a low harm probability or higher.\",\"Block content with a medium harm probability or higher.\",\"Block content with a high harm probability.\",\"Do not block any content, regardless of its harm probability.\",\"Turn off the safety filter entirely.\"]},\"type\":{\"$ref\":\"#/$defs/HarmCategory\",\"description\":\"Required. The type of harm category to be blocked.\"\x7d\x7d,\"required\":[\"threshold\",\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"SafetySetting\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ServiceTier\":{\"enum\":[\"flex\",\"standard\",\"priority\",\"deferred\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Flex service tier.\",\"Standard service tier.\",\"Priority service tier.\",\"Deferred service tier.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"SessionConfig\":{\"description\":\"The configuration of CodeMender sessions.\",\"properties\":{\"max_rounds\":{\"description\":\"The maximum number of interaction rounds the agent is allowed to perform\\nbefore reaching a timeout.\",\"format\":\"int32\",\"type\":\"integer\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SmartTranscriptionMode\":{\"description\":\"Configuration for smart transcription mode.\",\"properties\":{\"type\":{\"const\":\"smart\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Source\":{\"description\":\"A source to be mounted into the environment.\",\"properties\":{\"content\":{\"description\":\"The inline content if `type` is `INLINE`.\",\"type\":\"string\"},\"encoding\":{\"description\":\"Optional encoding for inline content (e.g. `base64`).\",\"type\":\"string\"},\"source\":{\"description\":\"The source of the environment.\\nFor Cloud Storage, this is the Cloud Storage path.\\nFor GitHub, this is the GitHub path.\",\"type\":\"string\"},\"target\":{\"description\":\"Where the source should appear in the environment.\",\"type\":\"string\"},\"type\":{\"enum\":[\"gcs\",\"inline\",\"repository\",\"skill_registry\"],\"type\":\"string\",\"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://).\",\"A skill resource from the Skill Registry Service.\\nSkill: projects/{project}/locations/{location}/skills/{skill}\\nSkillRevision:\\nprojects/{project}/locations/{location}/skills/{skill}/revisions/{revision}\\nSupport mounting all skills under a project:\\nprojects/{project}/locations/{location}/skills.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SpeakerConfig\":{\"description\":\"Configuration for multi-speaker and speech generation.\",\"properties\":{\"speakers\":{\"description\":\"Individual speaker configurations.\",\"items\":{\"$ref\":\"#/$defs/SpeechConfig\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SpeechAnnotation\":{\"description\":\"Speech annotation for text content.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"speaker\":{\"description\":\"The speaker to associate with this turn.\",\"type\":\"string\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"style\":{\"description\":\"Style instruction for the speech synthesis.\",\"type\":\"string\"},\"type\":{\"const\":\"speech_metadata\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"SpeechConfig\":{\"description\":\"The configuration for speech interaction.\",\"properties\":{\"language\":{\"description\":\"The language of the speech.\",\"type\":\"string\"},\"speaker\":{\"description\":\"The speaker's name, it should match the speaker name given in the prompt.\",\"type\":\"string\"},\"voice\":{\"description\":\"The voice of the speaker.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"SpeechConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"StaticMediaProcessing\":{\"properties\":{\"end_offset\":{\"description\":\"Optional. Segment end time. Specified as a decimal number of seconds followed\\nby an 's' suffix, e.g., \\\"30s\\\". Must be non-negative and greater than\\n`start_offset` if `start_offset` is set.\",\"format\":\"google-duration\",\"type\":\"string\"},\"fps\":{\"description\":\"Optional. Video frame-rate sampling density.\",\"format\":\"double\",\"type\":\"number\"},\"start_offset\":{\"description\":\"Optional. Segment start time. Specified as a decimal number of seconds followed\\nby an 's' suffix, e.g., \\\"10.5s\\\". Must be non-negative.\",\"format\":\"google-duration\",\"type\":\"string\"},\"type\":{\"const\":\"static\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Status\":{\"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\":{\"code\":{\"description\":\"The status code, which should be an enum value of google.rpc.Code.\",\"format\":\"int32\",\"type\":\"integer\"},\"details\":{\"description\":\"A list of messages that carry the error details. There is a common set of\\nmessage types for APIs to use.\",\"items\":{\"additionalProperties\":{\"description\":\"Properties of the object. Contains field @type with type URL.\"},\"type\":\"object\"},\"type\":\"array\"},\"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\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"Step\":{\"description\":\"A step in the interaction.\",\"oneOf\":[{\"$ref\":\"#/$defs/CodeExecutionCallStep\"},{\"$ref\":\"#/$defs/CodeExecutionResultStep\"},{\"$ref\":\"#/$defs/FileSearchCallStep\"},{\"$ref\":\"#/$defs/FileSearchResultStep\"},{\"$ref\":\"#/$defs/FunctionCallStep\"},{\"$ref\":\"#/$defs/FunctionResultStep\"},{\"$ref\":\"#/$defs/GoogleMapsCallStep\"},{\"$ref\":\"#/$defs/GoogleMapsResultStep\"},{\"$ref\":\"#/$defs/GoogleSearchCallStep\"},{\"$ref\":\"#/$defs/GoogleSearchResultStep\"},{\"$ref\":\"#/$defs/McpServerToolCallStep\"},{\"$ref\":\"#/$defs/McpServerToolResultStep\"},{\"$ref\":\"#/$defs/ModelOutputStep\"},{\"$ref\":\"#/$defs/ProcessingCallStep\"},{\"$ref\":\"#/$defs/ProcessingResultStep\"},{\"$ref\":\"#/$defs/RetrievalCallStep\"},{\"$ref\":\"#/$defs/RetrievalResultStep\"},{\"$ref\":\"#/$defs/ThoughtStep\"},{\"$ref\":\"#/$defs/UrlContextCallStep\"},{\"$ref\":\"#/$defs/UrlContextResultStep\"},{\"$ref\":\"#/$defs/UserInputStep\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Step\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TextContent\":{\"description\":\"A text content block.\",\"example\":{\"text\":\"Hello, how are you?\",\"type\":\"text\"},\"properties\":{\"annotations\":{\"description\":\"Citation information for model-generated content.\",\"items\":{\"$ref\":\"#/$defs/Annotation\"},\"type\":\"array\"},\"text\":{\"description\":\"Required. The text content.\",\"type\":\"string\"},\"type\":{\"const\":\"text\"\x7d\x7d,\"required\":[\"text\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Text\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TextContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TextResponseFormat\":{\"description\":\"Configuration for text output format.\",\"example\":{\"mime_type\":\"application/json\",\"schema\":{\"properties\":{\"ingredients\":{\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"recipe_name\":{\"type\":\"string\"\x7d\x7d,\"required\":[\"ingredients\",\"recipe_name\"],\"type\":\"object\"},\"type\":\"text\"},\"properties\":{\"mime_type\":{\"description\":\"The MIME type of the text output.\",\"enum\":[\"application/json\",\"text/plain\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"JSON output format.\",\"Plain text output format.\"]},\"schema\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"The JSON schema that the output should conform to. Only applicable when\\nmime_type is application/json.\",\"type\":\"object\"},\"type\":{\"const\":\"text\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Text Output (JSON Schema)\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TextResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ThinkingLevel\":{\"enum\":[\"minimal\",\"low\",\"medium\",\"high\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Little to no thinking.\",\"Low thinking level.\",\"Medium thinking level.\",\"High thinking level.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ThinkingLevel\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ThinkingSummaries\":{\"enum\":[\"auto\",\"none\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Auto thinking summaries.\",\"No thinking summaries.\"],\"x-speakeasy-model-namespace\":\"interactions\"},\"ThoughtContent\":{\"oneOf\":[{\"$ref\":\"#/$defs/ImageContent\"},{\"$ref\":\"#/$defs/TextContent\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"ThoughtSummaryContent\"},\"ThoughtStep\":{\"description\":\"A thought step.\",\"example\":{\"signature\":\"thought_sig_abcd1234\",\"summary\":[{\"text\":\"The model is searching Google for the capital of France.\",\"type\":\"text\"}],\"type\":\"thought\"},\"properties\":{\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"summary\":{\"description\":\"A summary of the thought.\",\"items\":{\"$ref\":\"#/$defs/ThoughtContent\"},\"type\":\"array\"},\"type\":{\"const\":\"thought\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"ThoughtStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ThoughtStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"Tool\":{\"description\":\"A tool that can be used by the model.\",\"oneOf\":[{\"$ref\":\"#/$defs/CodeExecution\"},{\"$ref\":\"#/$defs/ComputerUse\"},{\"$ref\":\"#/$defs/FileSearch\"},{\"$ref\":\"#/$defs/Function\"},{\"$ref\":\"#/$defs/GoogleMaps\"},{\"$ref\":\"#/$defs/GoogleSearch\"},{\"$ref\":\"#/$defs/McpServer\"},{\"$ref\":\"#/$defs/Retrieval\"},{\"$ref\":\"#/$defs/UrlContext\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"Tool\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ToolChoiceConfig\":{\"description\":\"The tool choice configuration containing allowed tools.\",\"example\":{\"allowed_tools\":{\"mode\":\"any\",\"tools\":[\"my_tool\"]\x7d\x7d,\"properties\":{\"allowed_tools\":{\"$ref\":\"#/$defs/AllowedTools\",\"description\":\"The allowed tools.\"\x7d\x7d,\"type\":\"object\",\"x-example-summaries\":[\"Allowed Tools\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ToolChoiceConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"ToolChoiceType\":{\"enum\":[\"auto\",\"any\",\"none\",\"validated\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Auto tool choice.\",\"Any tool choice.\",\"No tool choice.\",\"Validated tool choice.\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"ToolChoiceType\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TranscriptionConfig\":{\"description\":\"Configuration for speech recognition (transcription).\",\"properties\":{\"adaptation_phrases\":{\"deprecated\":true,\"description\":\"Optional. A list of phrases to bias the ASR model towards.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"custom_vocabulary\":{\"description\":\"Optional. A list of custom vocabulary phrases to bias the speech recognition model\\ntoward recognizing specific terms.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"diarization_mode\":{\"deprecated\":true,\"description\":\"Optional. Configures speaker diarization. Supported values: \\\"speaker\\\".\",\"type\":\"string\"},\"language_codes\":{\"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\"},\"language_hints\":{\"deprecated\":true,\"description\":\"Deprecated: use language_codes. BCP-47 language codes providing hints about the languages present in the audio.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"mode\":{\"description\":\"Discriminated transcription mode options or enum.\",\"oneOf\":[{\"$ref\":\"#/$defs/TranscriptionMode\"},{\"enum\":[\"verbatim\",\"smart\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Verbatim transcription mode.\",\"Smart transcription mode.\"]}],\"title\":\"TranscriptionConfigMode\"},\"timestamp_granularities\":{\"deprecated\":true,\"description\":\"Optional. The granularity of timestamps to include in the transcription output.\\nSupported values: \\\"word\\\". If empty, no timestamps are generated.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TranscriptionConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"TranscriptionMode\":{\"description\":\"Configuration for transcription mode.\",\"oneOf\":[{\"$ref\":\"#/$defs/SmartTranscriptionMode\"},{\"$ref\":\"#/$defs/VerbatimTranscriptionMode\"}],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"TranscriptionMode\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"UrlCitation\":{\"description\":\"A URL citation annotation.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"title\":{\"description\":\"The title of the URL.\",\"type\":\"string\"},\"type\":{\"const\":\"url_citation\"},\"url\":{\"description\":\"The URL.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLCitation\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLCitation\"},\"UrlContext\":{\"description\":\"A tool that can be used by the model to fetch URL context.\",\"properties\":{\"type\":{\"const\":\"url_context\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContext\"},\"UrlContextCallArguments\":{\"description\":\"The arguments to pass to the URL context.\",\"properties\":{\"urls\":{\"description\":\"The URLs to fetch.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextCallArguments\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextCallArguments\"},\"UrlContextCallStep\":{\"description\":\"URL context call step.\",\"example\":{\"arguments\":{\"urls\":[\"https://www.example.com\"]},\"id\":\"url_call_10219\",\"type\":\"url_context_call\"},\"properties\":{\"arguments\":{\"$ref\":\"#/$defs/UrlContextCallArguments\",\"description\":\"Required. The arguments to pass to the URL context.\"},\"id\":{\"description\":\"Required. A unique ID for this specific tool call.\",\"type\":\"string\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"url_context_call\"\x7d\x7d,\"required\":[\"arguments\",\"id\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"UrlContextCallStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextCallStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextCallStep\"},\"UrlContextResult\":{\"description\":\"The result of the URL context.\",\"properties\":{\"status\":{\"description\":\"The status of the URL retrieval.\",\"enum\":[\"success\",\"error\",\"paywall\",\"unsafe\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"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.\"]},\"url\":{\"description\":\"The URL that was fetched.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextResult\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextResult\"},\"UrlContextResultStep\":{\"description\":\"URL context result step.\",\"example\":{\"call_id\":\"url_call_10219\",\"result\":[{\"status\":\"success\",\"url\":\"https://www.example.com\"}],\"type\":\"url_context_result\"},\"properties\":{\"call_id\":{\"description\":\"Required. ID to match the ID from the function call block.\",\"type\":\"string\"},\"is_error\":{\"description\":\"Whether the URL context resulted in an error.\",\"type\":\"boolean\"},\"result\":{\"description\":\"Required. The results of the URL context.\",\"items\":{\"$ref\":\"#/$defs/UrlContextResult\"},\"type\":\"array\"},\"signature\":{\"description\":\"A signature hash for backend validation.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"type\":{\"const\":\"url_context_result\"\x7d\x7d,\"required\":[\"call_id\",\"result\",\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"UrlContextResultStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"URLContextResultStep\"}],\"x-speakeasy-model-namespace\":\"interactions\",\"x-speakeasy-name-override\":\"URLContextResultStep\"},\"UserInputStep\":{\"description\":\"Input provided by the user.\",\"example\":{\"content\":[{\"text\":\"What is the capital of France?\",\"type\":\"text\"}],\"type\":\"user_input\"},\"properties\":{\"content\":{\"items\":{\"$ref\":\"#/$defs/Content\"},\"title\":\"ContentList\",\"type\":\"array\"},\"type\":{\"const\":\"user_input\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"UserInputStep\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"UserInputStep\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"VerbatimTranscriptionMode\":{\"description\":\"Configuration for verbatim transcription mode.\",\"properties\":{\"diarization_mode\":{\"description\":\"Optional. Configures speaker diarization. Supported values: \\\"speaker\\\".\",\"type\":\"string\"},\"timestamp_granularities\":{\"description\":\"Optional. The granularity of timestamps to include in the transcription output.\\nSupported values: \\\"word\\\". If empty, no timestamps are generated.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"type\":{\"const\":\"verbatim\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"VertexAISearchConfig\":{\"description\":\"Used to specify configuration for VertexAISearch.\",\"properties\":{\"datastores\":{\"description\":\"Optional. Used to specify Vertex AI Search datastores.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"engine\":{\"description\":\"Optional. Used to specify Vertex AI Search engine.\",\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-model-namespace\":\"interactions\"},\"VideoConfig\":{\"description\":\"Configuration options for video generation.\",\"properties\":{\"task\":{\"description\":\"Optional task mode for video generation. If not specified, the model\\nautomatically determines the appropriate mode based on the provided text\\nprompt and input media.\",\"enum\":[\"text_to_video\",\"image_to_video\",\"reference_to_video\",\"edit\",\"extend\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Generates video solely from a text prompt.\",\"Generates video from one or two source images. The first image defines\\nthe starting frame, and the optional second image defines the ending\\nframe.\",\"Generates video using reference media (such as images, audio, or video).\",\"Modifies an existing input video.\",\"Extends an existing input video.\"]\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"VideoConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"VideoContent\":{\"description\":\"A video content block.\",\"example\":{\"type\":\"video\",\"uri\":\"https://www.youtube.com/watch?v=9hE5-98ZeCg\"},\"properties\":{\"data\":{\"description\":\"The video content.\",\"format\":\"byte\",\"type\":\"string\",\"x-speakeasy-base64-input-mode\":\"file\"},\"mime_type\":{\"description\":\"The mime type of the video.\",\"enum\":[\"video/mp4\",\"video/mpeg\",\"video/mpg\",\"video/mov\",\"video/avi\",\"video/x-flv\",\"video/webm\",\"video/wmv\",\"video/3gpp\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"MP4 video format\",\"MPEG video format\",\"MPG video format\",\"MOV video format\",\"AVI video format\",\"FLV video format\",\"WebM video format\",\"WMV video format\",\"3GPP video format\"]},\"name\":{\"description\":\"A user-defined name for this content block. Can be referenced by the model\\nin the final response.\",\"type\":\"string\"},\"processing\":{\"description\":\"How the model processes this video for understanding.\",\"oneOf\":[{\"$ref\":\"#/$defs/MediaProcessing\"},{\"enum\":[\"static\",\"agentic\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Fixed-rate frame extraction. All frames placed in context.\",\"Model-driven dynamic navigation.\"]}]},\"resolution\":{\"$ref\":\"#/$defs/MediaResolution\",\"description\":\"The resolution of the media.\"},\"type\":{\"const\":\"video\"},\"uri\":{\"description\":\"The URI of the video.\",\"type\":\"string\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Video\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"VideoContent\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"VideoResponseFormat\":{\"description\":\"Configuration for video output format.\",\"example\":{\"aspect_ratio\":\"16:9\",\"delivery\":\"inline\",\"type\":\"video\"},\"properties\":{\"aspect_ratio\":{\"description\":\"The aspect ratio for the video output.\",\"enum\":[\"16:9\",\"9:16\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"16:9 aspect ratio.\",\"9:16 aspect ratio.\"]},\"delivery\":{\"description\":\"The delivery mode for the video output.\",\"enum\":[\"inline\",\"uri\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"Video data is returned inline in the response.\",\"Video data is returned as a URI.\"]},\"duration\":{\"description\":\"The duration for the video output.\",\"format\":\"google-duration\",\"type\":\"string\"},\"gcs_uri\":{\"description\":\"The Cloud Storage URI to store the video output. Required for Vertex if\\ndelivery mode is URI.\",\"type\":\"string\"},\"resolution\":{\"description\":\"The video output resolution. Defaults to 720p.\",\"enum\":[\"360p\",\"720p\",\"1080p\",\"4k\"],\"type\":\"string\",\"x-google-enum-descriptions\":[\"360p resolution.\",\"720p resolution.\",\"1080p resolution.\",\"4K resolution.\"]},\"type\":{\"const\":\"video\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-example-summaries\":[\"Video Output\"],\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"VideoResponseFormat\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"WebhookConfig\":{\"description\":\"Message for configuring webhook events for a request.\",\"properties\":{\"uris\":{\"description\":\"Optional. If set, these webhook URIs will be used for webhook events instead of the\\nregistered webhooks.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"},\"user_metadata\":{\"additionalProperties\":{\"description\":\"Properties of the object.\"},\"description\":\"Optional. The user metadata that will be returned on each event emission to the\\nwebhooks.\",\"type\":\"object\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"WebhookConfig\"}],\"x-speakeasy-model-namespace\":\"interactions\"},\"WordInfo\":{\"description\":\"Word-level ASR annotation for transcription output.\\nCarries the word text, optional timing, and optional speaker attribution.\",\"properties\":{\"end_index\":{\"description\":\"End of the attributed segment, exclusive.\",\"format\":\"int32\",\"type\":\"integer\"},\"end_offset\":{\"description\":\"End offset in time of the word relative to the start of the audio.\\nPresent when timestamp_granularities contains \\\"word\\\".\",\"format\":\"google-duration\",\"type\":\"string\"},\"speaker\":{\"description\":\"Optional. Speaker label for this word (e.g. \\\"spk_1\\\", \\\"spk_2\\\").\\nPresent when diarization_mode is set in TranscriptionConfig.\",\"type\":\"string\"},\"start_index\":{\"description\":\"Start of segment of the response that is attributed to this source.\\n\\nIndex indicates the start of the segment, measured in bytes.\",\"format\":\"int32\",\"type\":\"integer\"},\"start_offset\":{\"description\":\"Start offset in time of the word relative to the start of the audio.\\nPresent when timestamp_granularities contains \\\"word\\\".\",\"format\":\"google-duration\",\"type\":\"string\"},\"text\":{\"description\":\"The transcribed word.\",\"type\":\"string\"},\"type\":{\"const\":\"word_info\"\x7d\x7d,\"required\":[\"type\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"interactions\",\"name\":\"WordInfo\"}],\"x-speakeasy-model-namespace\":\"interactions\"\x7d\x7d,\"oneOf\":[{\"$ref\":\"#/$defs/AgentInteraction\"},{\"$ref\":\"#/$defs/ModelInteraction\"}]}", "CreateWebhook": "{\"$defs\":{\"SigningSecret\":{\"description\":\"Represents a signing secret used to verify webhook payloads.\",\"properties\":{\"expire_time\":{\"description\":\"Output only. The expiration date of the signing secret.\",\"format\":\"date-time\",\"readOnly\":true,\"type\":\"string\"},\"truncated_secret\":{\"description\":\"Output only. The truncated version of the signing secret.\",\"readOnly\":true,\"type\":\"string\"\x7d\x7d,\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"webhooks\",\"name\":\"SigningSecret\"}],\"x-speakeasy-model-namespace\":\"webhooks\"},\"Webhook\":{\"description\":\"A Webhook resource.\",\"properties\":{\"create_time\":{\"description\":\"Output only. The timestamp when the webhook was created.\",\"format\":\"date-time\",\"readOnly\":true,\"type\":\"string\"},\"id\":{\"description\":\"Output only. The ID of the webhook.\",\"readOnly\":true,\"type\":\"string\"},\"name\":{\"description\":\"Optional. The user-provided name of the webhook.\",\"example\":\"MyBatchWebhook\",\"type\":\"string\"},\"new_signing_secret\":{\"description\":\"Output only. The new signing secret for the webhook. Only populated on create.\",\"readOnly\":true,\"type\":\"string\"},\"signing_secrets\":{\"description\":\"Output only. The signing secrets associated with this webhook.\",\"items\":{\"$ref\":\"#/$defs/SigningSecret\"},\"readOnly\":true,\"type\":\"array\"},\"state\":{\"description\":\"Output only. The state of the webhook.\",\"enum\":[\"enabled\",\"disabled\",\"disabled_due_to_failed_deliveries\"],\"readOnly\":true,\"type\":\"string\",\"x-google-enum-descriptions\":[\"The webhook is enabled.\",\"The webhook is disabled by the user.\",\"The webhook is disabled due to failed deliveries.\"]},\"subscribed_events\":{\"description\":\"Required. The events that the webhook is subscribed to.\",\"example\":[\"batch.succeeded\",\"batch.failed\"],\"items\":{\"enum\":[\"batch.succeeded\",\"batch.expired\",\"batch.failed\",\"interaction.requires_action\",\"interaction.completed\",\"interaction.failed\",\"video.generated\"],\"type\":\"string\",\"x-speakeasy-enum-descriptions\":[\"Batch processing finished successfully.\",\"Batch has not been processed within the 48h timeframe.\",\"Batch job failed.\",\"Interaction requires action (e.g., function calling).\",\"Interaction completed successfully.\",\"Interaction failed.\",\"Video generation completed.\"],\"x-speakeasy-enum-format\":\"union\",\"x-speakeasy-unknown-values\":\"allow\"},\"type\":\"array\"},\"update_time\":{\"description\":\"Output only. The timestamp when the webhook was last updated.\",\"format\":\"date-time\",\"readOnly\":true,\"type\":\"string\"},\"uri\":{\"description\":\"Required. The URI to which webhook events will be sent.\",\"example\":\"https://my-api.com/gemini-callback\",\"type\":\"string\"\x7d\x7d,\"required\":[\"subscribed_events\",\"uri\"],\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"webhooks\",\"name\":\"Webhook\"},{\"group\":\"webhooks\",\"name\":\"WebhookInput\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"webhooks\"\x7d\x7d,\"$ref\":\"#/$defs/Webhook\"}", "FilesRegister": "{\"$defs\":{\"GenAIRegisterFilesRequest\":{\"description\":\"Request for `RegisterFiles`.\",\"properties\":{\"uris\":{\"description\":\"Required. The gs:// URIs of the Google Cloud Storage objects to register.\",\"example\":[\"gs://bucket/object\"],\"items\":{\"type\":\"string\"},\"minItems\":1,\"type\":\"array\"\x7d\x7d,\"required\":[\"uris\"],\"type\":\"object\",\"x-speakeasy-model-namespace\":\"genai\",\"x-speakeasy-name-override\":\"RegisterFilesRequest\"\x7d\x7d,\"$ref\":\"#/$defs/GenAIRegisterFilesRequest\"}", "PingWebhook": "{\"$defs\":{\"PingWebhookRequest\":{\"description\":\"Request message for WebhookService.PingWebhook.\",\"properties\":{},\"type\":\"object\",\"x-speakeasy-exports\":[{\"group\":\"webhooks\",\"name\":\"WebhookPingParams\",\"representation\":\"input\"}],\"x-speakeasy-model-namespace\":\"webhooks\"\x7d\x7d,\"$ref\":\"#/$defs/PingWebhookRequest\"}", diff --git a/internal/usage/schema.go b/internal/usage/schema.go index 46f7f05..a378572 100644 --- a/internal/usage/schema.go +++ b/internal/usage/schema.go @@ -28,11 +28,11 @@ import ( ) var usageSchemas = map[string]string{ - "": "name \"gemini-api\"\nbin \"gemini-api\"\nabout \"\"\"\n Gemini API: Use the Gemini Interactions API and managed-agent platform from the command line.\n\n Get started:\n Set GEMINI_API_KEY, or run: gemini-api configure\n Then run a model or managed agent: gemini-api agent --help\n Add --dry-run to preview any API call without sending it.\n \"\"\"\nversion \"0.4.1\"\nconfig {\n file \"~/.config/gemini-api/config.yaml\"\n}\nflag \"--usage\" help=\"Print the CLI Usage schema in KDL format\" global=#true\nflag \"--help-global\" help=\"Print global flags shared by every command\"\nflag \"-v --version\" help=\"Print the CLI version\"\nflag \"-o --output-format \" help=\"Specify the output format. Options: pretty, json, yaml, table, toon.\" global=#true config=\"output_format\" default=\"pretty\"\nflag \"--color \" help=\"Control colored output: auto (color when output is a TTY), always, or never. Respects NO_COLOR and FORCE_COLOR env vars.\" global=#true default=\"auto\"\nflag \"-q --jq \" help=\"Filter and transform output using a jq expression (e.g., '.name', '.items[] | .id')\" global=#true\nflag \"--raw-output\" help=\"Write --jq string results as raw text instead of JSON strings (like jq -r); non-string results stay JSON\" global=#true default=#true\nflag \"--server-url \" help=\"Override the default server URL\" global=#true\nflag \"-H --header \" help=\"Set a custom HTTP request header (format: \\\"Key: Value\\\"). Can be specified multiple times.\" global=#true var=#true\nflag \"--include-headers\" help=\"Include HTTP response headers in the output\" global=#true default=#false\nflag \"--timeout \" help=\"HTTP request timeout (e.g., 30s, 5m, 100ms)\" global=#true config=\"timeout\"\nflag \"--interactive\" help=\"Prompt for missing inputs and open guided configure/auth forms (forms fall back to line prompts on stdin off-TTY)\" global=#true default=#false\nflag \"--no-interactive\" help=\"Disable all interactive features (auto-prompting, explorer auto-launch, TUI forms)\" global=#true default=#false\nflag \"--dry-run\" help=\"Preview API requests without sending them (no network, no OS keychain). Human preview on stderr; with -o json or --jq, one JSON object per request on stdout. Local mutation commands (auth login, auth logout and configure) make no request: they skip prompts and writes and report a no-op (stderr, or one JSON object on stdout in the machine form)\" global=#true default=#false\nflag \"-d --debug\" help=\"Log request and response diagnostics to stderr\" global=#true default=#false\nflag \"--agent-mode\" help=\"Enable structured errors and default TOON output for AI coding agents.\" global=#true default=#false\nflag \"--no-retries\" help=\"Disable automatic retries (default: retries enabled with exponential backoff)\" global=#true config=\"no_retries\" default=#false hide=#true\nflag \"--retry-max-elapsed-time \" help=\"Maximum total time for retries (e.g., 30s, 5m). Default: 30s\" global=#true config=\"retry_max_elapsed_time\" hide=#true\nflag \"--retry-connection-errors\" help=\"Retry on connection errors (EOF, reset, etc.)\" global=#true config=\"retry_connection_errors\" default=#false hide=#true\nflag \"--retry-config \" help=\"Full retry config as JSON. Schema: {\\\"strategy\\\":\\\"backoff\\\",\\\"backoff\\\":{\\\"initialInterval\\\":500,\\\"maxInterval\\\":10000,\\\"exponent\\\":1.5,\\\"maxElapsedTime\\\":30000},\\\"retryConnectionErrors\\\":false}. Use strategy \\\"attempt-count-backoff\\\" with maxRetries for attempt-count retries. Times are in milliseconds.\" global=#true config=\"retry_config\" hide=#true\nflag \"--api-key \" help=\"Gemini API key sent as x-goog-api-key.\" global=#true env=\"GEMINI_API_KEY\" config=\"security.api_key\"\nflag \"--access-token \" help=\"OAuth access token sent as a bearer Authorization header.\" global=#true env=\"GEMINI_ACCESS_TOKEN\" config=\"security.access_token\"\nflag \"--api-version \" help=\"Which version of the API to use\" global=#true env=\"GEMINI_API_VERSION\" config=\"globals.api_version\" default=\"v1beta\"\nflag \"--api-revision \" help=\"Interactions API revision to request\" global=#true env=\"GEMINI_API_REVISION\" config=\"globals.api_revision\"\nflag \"--user-project \" help=\"Quota project header to send with Google GenAI API requests\" global=#true env=\"GEMINI_USER_PROJECT\" config=\"globals.user_project\"\ncmd \"agent\" help=\"Run interactions with Gemini models or managed agents, and manage agent definitions\" {\n cmd \"run\" help=\"Run an interaction with a Gemini model or a managed agent\" {\n arg \"input\" help=\"Prompt or task to send\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"--agent \" help=\"Managed agent to run (see \\\"gemini-api agent list\\\") (e.g. deep-research-pro-preview-12-2025, deep-research-preview-04-2026, deep-research-max-preview-04-2026, antigravity-preview-05-2026)\" {\n suggestions \"deep-research-pro-preview-12-2025\" \"deep-research-preview-04-2026\" \"deep-research-max-preview-04-2026\" \"antigravity-preview-05-2026\"\n }\n flag \"--background\" help=\"Return immediately with an interaction ID; poll with \\\"gemini-api agent status\\\"\"\n flag \"-m --model \" help=\"Model to run (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for one complete interaction (default: true)\" default=#true\n }\n cmd \"cancel\" help=\"Cancel an in-progress interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to cancel. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to cancel. (or pass it as the [id] argument)\"\n }\n cmd \"create\" help=\"Create a managed agent definition\" {\n flag \"-a --agent-config \" help=\"{ \\\"max_total_tokens\\\": string, \\\"model\\\": string }\"\n flag \"--base-agent \" help=\"The base agent to extend. [required]\"\n flag \"--base-environment \" help=\"{ \\\"env\\\": object | string, \\\"environment_id\\\": string, \\\"network\\\": object | string, \\\"sources\\\": object[] } | string\"\n flag \"--description \" help=\"Agent description for developers to quickly read and understand.\"\n flag \"-i --id \" help=\"The unique identifier for the agent. [required]\"\n flag \"-s --system-instruction \" help=\"System instruction for the agent.\"\n flag \"-t --tools \" help=\"The tools available to the agent. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to delete. (or pass it as the [id] argument)\"\n }\n cmd \"delete-interaction\" help=\"Delete an interaction by interaction ID\" {\n alias \"di\"\n arg \"id\" help=\"Required. The name of the interaction to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to delete. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to retrieve. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to retrieve. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List managed agent definitions\" {\n flag \"--page-size \" help=\"Maximum number of agents to return per page\"\n flag \"--page-token \" help=\"Page token from a previous agent list call\"\n flag \"--parent \" help=\"Parent resource to list agents from, as projects//locations/\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"status\" help=\"Get status and output of an interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to retrieve. (or use --id)\"\n flag \"--include-input\" help=\"If true, includes the input in the response.\"\n flag \"-i --id \" help=\"Required. The name of the interaction to retrieve. (or pass it as the [id] argument)\"\n flag \"-l --last-event-id \" help=\"\"\"\n If set, resumes the interaction stream from the chunk after the event\n marked by the event id. Can only be used if 'stream' is true.\n \"\"\"\n flag \"-s --stream\" help=\"Stream the interaction's events (replayed from the start for a finished interaction) instead of returning the status object. Defaults to true; use --stream=false for the status object.\" default=#true\n }\n}\ncmd \"analyze\" help=\"Ask questions about images, audio, video, documents, text files, or YouTube URLs (gemini-3.8-flash)\"\ncmd \"configure\" help=\"Configure authentication, global parameters, and preferences\"\ncmd \"credentials\" help=\"Manage stored credentials (bearer tokens, OAuth2, environment variables) that agents inject into outgoing HTTP requests\" {\n cmd \"create\" help=\"Create a credential\" {\n flag \"-b --body-param \" help=\"{ \\\"id\\\": string, \\\"injection_location\\\": string | string[], \\\"value\\\": string, ... } | { \\\"id\\\": string, \\\"token\\\": string, ... } | { \\\"client_id\\\": string, \\\"client_secret\\\": string, \\\"id\\\": string, \\\"refresh_token\\\": string, ... }\"\n flag \"--body-param.environment-variable \" help=\"EnvironmentVariableConfig variant as JSON\"\n flag \"--body-param.bearer-token \" help=\"HttpBearerConfig variant as JSON\"\n flag \"--body-param.bearer-token.header-name \" help=\"\"\"\n Optional. Header name to inject the token into. Defaults to\n 'Authorization'.\n \"\"\"\n flag \"--body-param.bearer-token.id \" help=\"Required. Unique identifier for the credential. [required]\"\n flag \"--body-param.bearer-token.prefix \" help=\"\"\"\n Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\n for no prefix.\n \"\"\"\n flag \"--body-param.bearer-token.token \" help=\"Required. Input only. The static bearer token. Write-only; never returned in responses. [required]\"\n flag \"--body-param.oauth2 \" help=\"OAuth2Config variant as JSON\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a credential by ID\" {\n arg \"id\" help=\"Credential ID, as given on create (or use --id)\"\n flag \"-i --id \" help=\"Credential ID, as given on create (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a credential by ID\" {\n arg \"id\" help=\"Credential ID, as given on create (or use --id)\"\n flag \"-i --id \" help=\"Credential ID, as given on create (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List credentials\" {\n flag \"--page-size \" help=\"Optional. Maximum number of credentials to return.\"\n flag \"--page-token \" help=\"Optional. Pagination token.\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"update\" help=\"Update a credential by ID\" {\n arg \"id\" help=\"Credential ID, as given on create (or use --id)\"\n flag \"-i --id \" help=\"Credential ID, as given on create (or pass it as the [id] argument)\"\n flag \"-u --update-mask \" help=\"Optional. The list of fields to update.\"\n flag \"-b --body-param \" help=\"{ \\\"injection_location\\\": string | string[], \\\"trusted_domains\\\": string[], \\\"value\\\": string } | { \\\"header_name\\\": string, \\\"prefix\\\": string, \\\"token\\\": string } | { \\\"client_id\\\": string, \\\"client_secret\\\": string, \\\"refresh_token\\\": string, \\\"scopes\\\": string[], ... }\"\n flag \"--body-param.environment-variable \" help=\"EnvironmentVariableUpdateConfig variant as JSON\"\n flag \"--body-param.bearer-token \" help=\"HttpBearerUpdateConfig variant as JSON\"\n flag \"--body-param.bearer-token.header-name \" help=\"\"\"\n Optional. Header name to inject the token into. Defaults to\n 'Authorization'.\n \"\"\"\n flag \"--body-param.bearer-token.prefix \" help=\"\"\"\n Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\n for no prefix.\n \"\"\"\n flag \"--body-param.bearer-token.token \" help=\"Optional. Input only. The static bearer token. Write-only; never returned in responses.\"\n flag \"--body-param.oauth2 \" help=\"OAuth2UpdateConfig variant as JSON\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"environments\" help=\"Manage sandbox environments and inspect environment files\" {\n cmd \"create\" help=\"Create a sandbox environment\" {\n flag \"-f --from-environment \" help=\"\"\"\n Optional. The source environment to copy/fork from.\n Format: 'environments/{environment_id}' or '{environment_id}'.\n When specified, 'sources' and 'env' must be empty.\n \"\"\"\n flag \"-n --network \" help=\"{ \\\"allowlist\\\": object[] | string } | CreateEnvironmentRequest_network_enum\"\n flag \"-s --sources \" help=\"Sources to be mounted into the environment. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a sandbox environment by ID\" {\n arg \"id\" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or use --id)\n \"\"\"\n flag \"-i --id \" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or pass it as the [id] argument)\n \"\"\"\n }\n cmd \"files\" help=\"List and inspect files in an environment's snapshot\" {\n cmd \"list\" help=\"List or inspect files in an environment snapshot\" {\n flag \"-e --environment \" help=\"Environment to read, as environments/ or a bare id [required]\"\n flag \"-p --path \" help=\"File or directory path relative to the workspace root, e.g. src; a leading slash is ignored [required]\"\n flag \"--page-size \" help=\"Optional. Maximum number of entries to return per page (for directory listing).\"\n flag \"--page-token \" help=\"Optional. Pagination token for directory listing.\"\n flag \"-r --recursive\" help=\"Optional. If true and the path is a directory, recursively lists all files.\"\n }\n }\n cmd \"get\" help=\"Get a sandbox environment by ID\" {\n arg \"id\" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or use --id)\n \"\"\"\n flag \"-i --id \" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or pass it as the [id] argument)\n \"\"\"\n }\n cmd \"list\" help=\"List sandbox environments\" {\n flag \"--page-size \" help=\"\"\"\n Optional. Maximum number of environments to return.\n If unspecified, defaults to 50. Maximum is 1000.\n \"\"\"\n flag \"--page-token \" help=\"Optional. Pagination token.\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n}\ncmd \"files\" help=\"Upload, list, inspect, register, and delete files (48-hour retention)\" {\n cmd \"delete\" help=\"Delete a file\" {\n arg \"file\" help=\"File to delete, as files/ or a bare id (or use --file)\"\n flag \"-f --file \" help=\"File to delete, as files/ or a bare id (or pass it as the [file] argument)\"\n }\n cmd \"generated-files-list\" help=\"List files generated on the project's behalf\" {\n alias \"gfl\"\n flag \"--page-size \" help=\"Maximum number of generated files to return per page (default 10, maximum 50)\"\n flag \"--page-token \" help=\"Page token from a previous generated-files list call\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"get\" help=\"Get a file's metadata and processing state\" {\n arg \"file\" help=\"File to get, as files/ or a bare id (or use --file)\"\n flag \"-f --file \" help=\"File to get, as files/ or a bare id (or pass it as the [file] argument)\"\n }\n cmd \"list\" help=\"List uploaded and registered files\" {\n flag \"--page-size \" help=\"Maximum number of files to return per page (default 10, maximum 100)\"\n flag \"--page-token \" help=\"Page token from a previous files list call\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"register\" help=\"Register Google Cloud Storage objects as files without copying them\" {\n flag \"-u --uris \" help=\"Required. The gs:// URIs of the Google Cloud Storage objects to register. (JSON array) [required]\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"generate\" help=\"Text & multimodal generation (gemini-3.8-flash)\" {\n arg \"prompt\" help=\"Prompt to send to the model\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Model to use (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for a single complete result (default: true)\" default=#true\n}\ncmd \"image\" help=\"Generate or edit images (gemini-nano-banana-2.1)\" {\n arg \"prompt\" help=\"Image prompt\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Override the image model (e.g. gemini-3.1-flash-image, gemini-3.1-flash-lite-image, gemini-3-pro-image, nano-banana-pro-preview, default: gemini-nano-banana-2.1)\" default=\"gemini-nano-banana-2.1\" {\n suggestions \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-image\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\"\n }\n flag \"--out \" help=\"Write the image to this file (or into this directory). Default: ./gemini-image-{timestamp}-{rand}.{ext}\"\n flag \"--raw-response\" help=\"Print the raw API response instead of writing the image to a file\"\n}\ncmd \"models\" help=\"Show the curated offline model catalog; list/get query the live API\" {\n cmd \"get\" help=\"Get a model's live metadata (version, token limits, supported methods)\" {\n arg \"model\" help=\"Model id, e.g. gemini-flash-latest (or use --model)\"\n flag \"-m --model \" help=\"Model id, e.g. gemini-flash-latest (or pass it as the [model] argument)\"\n }\n cmd \"list\" help=\"List the models the API serves (live; bare \\\"models\\\" is the offline catalog)\" {\n flag \"--page-size \" help=\"Maximum number of models to return per page (default 50, maximum 1000)\"\n flag \"--page-token \" help=\"Page token from a previous models list call\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n}\ncmd \"music\" help=\"Music generation (lyria-3.5)\" {\n arg \"prompt\" help=\"Music prompt\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Override the music model (e.g. lyria-3-pro-preview, lyria-3-clip-preview, default: lyria-3.5)\" default=\"lyria-3.5\" {\n suggestions \"lyria-3.5\" \"lyria-3-pro-preview\" \"lyria-3-clip-preview\"\n }\n flag \"--out \" help=\"Write the audio to this file (or into this directory). Default: ./gemini-music-{timestamp}-{rand}.{ext}\"\n flag \"--raw-response\" help=\"Print the raw API response instead of writing the audio to a file\"\n}\ncmd \"transcribe\" help=\"Audio/video → text (timestamps, captions) (gemini-3.8-flash)\"\ncmd \"triggers\" help=\"Schedule and manage cron triggers that run managed agents\" {\n cmd \"delete\" help=\"Delete a trigger by ID\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a trigger by ID\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List triggers for a project\" {\n flag \"-f --filter \" help=\"Optional. Filter expression (e.g., by state).\"\n flag \"--page-size \" help=\"Optional. The maximum number of triggers to return per page.\"\n flag \"--page-token \" help=\"Optional. A page token from a previous ListTriggers call.\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"list-executions\" help=\"List executions for a trigger\" {\n alias \"le\"\n arg \"id\" help=\"Required. The trigger ID to list executions from. (or use --id)\"\n flag \"--page-size \" help=\"The maximum number of executions to return per page.\"\n flag \"--page-token \" help=\"A page token from a previous ListTriggerExecutions call.\"\n flag \"-i --id \" help=\"Required. The trigger ID to list executions from. (or pass it as the [id] argument)\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"run\" help=\"Run a trigger immediately\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n }\n cmd \"update\" help=\"Update a trigger by ID\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n flag \"--display-name \" help=\"Optional. The display name of the trigger.\"\n flag \"-s --status \" help=\"Optional. The status of the trigger. (options: active, paused, error)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"tts\" help=\"Text to speech (gemini-3.8-flash-tts)\"\ncmd \"video\" help=\"Generate & edit video conversationally (gemini-omni-1.1-flash)\" {\n arg \"prompt\" help=\"Video prompt\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Override the video model (e.g. gemini-omni-flash-preview, default: gemini-omni-1.1-flash)\" default=\"gemini-omni-1.1-flash\" {\n suggestions \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--out \" help=\"Write the video to this file (or into this directory). Default: ./gemini-video-{timestamp}-{rand}.{ext}\"\n flag \"--raw-response\" help=\"Print the raw API response instead of writing the video to a file\"\n flag \"--async\" help=\"Return the operation handle without waiting for a terminal response\"\n flag \"--poll-interval \" help=\"Override the initial polling interval (positive Go duration, for example 500ms or 2s)\"\n flag \"--poll-timeout \" help=\"Override the overall polling deadline (positive Go duration, at least the effective poll interval)\"\n}\ncmd \"webhooks\" help=\"Manage webhook endpoints and signing secrets for event delivery\" {\n cmd \"create\" help=\"Create a webhook endpoint\" {\n flag \"-n --name \" help=\"Optional. The user-provided name of the webhook.\"\n flag \"-s --subscribed-events \" help=\"Required. The events that the webhook is subscribed to. (options: batch.succeeded, batch.expired, batch.failed, interaction.requires_action, interaction.completed, interaction.failed, video.generated) (JSON array) [required]\"\n flag \"-u --uri \" help=\"Required. The URI to which webhook events will be sent. [required]\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a webhook by ID\" {\n arg \"id\" help=\"Required. The ID of the webhook to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to delete. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a webhook by ID\" {\n arg \"id\" help=\"Required. The ID of the webhook to retrieve. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to retrieve. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List webhook endpoints\" {\n flag \"--page-size \" help=\"\"\"\n Optional. The maximum number of webhooks to return. The service may return\n fewer than this value. If unspecified, at most 50 webhooks will be\n returned. The maximum value is 1000.\n \"\"\"\n flag \"--page-token \" help=\"\"\"\n Optional. A page token, received from a previous 'ListWebhooks' call.\n Provide this to retrieve the subsequent page.\n \"\"\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"ping\" help=\"Send a ping event to a webhook\" {\n arg \"id\" help=\"Required. The ID of the webhook to ping. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to ping. (or pass it as the [id] argument)\"\n flag \"--body \" help=\"Request body as JSON. Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"rotate-signing-secret\" help=\"Rotate the signing secret for a webhook\" {\n alias \"rss\"\n arg \"id\" help=\"Required. The ID of the webhook for which to generate a signing secret. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook for which to generate a signing secret. (or pass it as the [id] argument)\"\n flag \"-r --revocation-behavior \" help=\"Optional. The revocation behavior for previous signing secrets. (options: revoke_previous_secrets_after_h24, revoke_previous_secrets_immediately)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"update\" help=\"Update a webhook by ID\" {\n arg \"id\" help=\"Required. The ID of the webhook to update. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to update. (or pass it as the [id] argument)\"\n flag \"--update-mask \" help=\"Optional list of fields to update.\"\n flag \"-n --name \" help=\"Optional. The user-provided name of the webhook.\"\n flag \"--state \" help=\"Optional. The state of the webhook. (options: enabled, disabled, disabled_due_to_failed_deliveries)\"\n flag \"--subscribed-events \" help=\"Optional. The events that the webhook is subscribed to. (options: batch.succeeded, batch.expired, batch.failed, interaction.requires_action, interaction.completed, interaction.failed, video.generated) (JSON array)\"\n flag \"--uri \" help=\"Optional. The URI to which webhook events will be sent.\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"auth\" help=\"Manage authentication credentials\" {\n cmd \"login\" help=\"Interactively configure authentication credentials\"\n cmd \"logout\" help=\"Clear all stored authentication credentials\"\n cmd \"whoami\" help=\"Display current authentication and global parameter configuration\"\n}\ncmd \"completion\" help=\"Generate the autocompletion script for the specified shell\" {\n cmd \"bash\" help=\"Generate the autocompletion script for bash\"\n cmd \"fish\" help=\"Generate the autocompletion script for fish\"\n cmd \"powershell\" help=\"Generate the autocompletion script for powershell\"\n cmd \"zsh\" help=\"Generate the autocompletion script for zsh\"\n}\ncmd \"explore\" help=\"Interactively browse and run commands\"\ncmd \"help\" help=\"Help about any command\"\ncmd \"version\" help=\"Print the CLI version\"\ncmd \"whoami\" help=\"Display current authentication and global parameter configuration\"\n", - "agent": "cmd \"agent\" help=\"Run interactions with Gemini models or managed agents, and manage agent definitions\" {\n cmd \"run\" help=\"Run an interaction with a Gemini model or a managed agent\" {\n arg \"input\" help=\"Prompt or task to send\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"--agent \" help=\"Managed agent to run (see \\\"gemini-api agent list\\\") (e.g. deep-research-pro-preview-12-2025, deep-research-preview-04-2026, deep-research-max-preview-04-2026, antigravity-preview-05-2026)\" {\n suggestions \"deep-research-pro-preview-12-2025\" \"deep-research-preview-04-2026\" \"deep-research-max-preview-04-2026\" \"antigravity-preview-05-2026\"\n }\n flag \"--background\" help=\"Return immediately with an interaction ID; poll with \\\"gemini-api agent status\\\"\"\n flag \"-m --model \" help=\"Model to run (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for one complete interaction (default: true)\" default=#true\n }\n cmd \"cancel\" help=\"Cancel an in-progress interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to cancel. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to cancel. (or pass it as the [id] argument)\"\n }\n cmd \"create\" help=\"Create a managed agent definition\" {\n flag \"-a --agent-config \" help=\"{ \\\"max_total_tokens\\\": string, \\\"model\\\": string }\"\n flag \"--base-agent \" help=\"The base agent to extend. [required]\"\n flag \"--base-environment \" help=\"{ \\\"env\\\": object | string, \\\"environment_id\\\": string, \\\"network\\\": object | string, \\\"sources\\\": object[] } | string\"\n flag \"--description \" help=\"Agent description for developers to quickly read and understand.\"\n flag \"-i --id \" help=\"The unique identifier for the agent. [required]\"\n flag \"-s --system-instruction \" help=\"System instruction for the agent.\"\n flag \"-t --tools \" help=\"The tools available to the agent. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to delete. (or pass it as the [id] argument)\"\n }\n cmd \"delete-interaction\" help=\"Delete an interaction by interaction ID\" {\n alias \"di\"\n arg \"id\" help=\"Required. The name of the interaction to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to delete. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to retrieve. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to retrieve. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List managed agent definitions\" {\n flag \"--page-size \" help=\"Maximum number of agents to return per page\"\n flag \"--page-token \" help=\"Page token from a previous agent list call\"\n flag \"--parent \" help=\"Parent resource to list agents from, as projects//locations/\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"status\" help=\"Get status and output of an interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to retrieve. (or use --id)\"\n flag \"--include-input\" help=\"If true, includes the input in the response.\"\n flag \"-i --id \" help=\"Required. The name of the interaction to retrieve. (or pass it as the [id] argument)\"\n flag \"-l --last-event-id \" help=\"\"\"\n If set, resumes the interaction stream from the chunk after the event\n marked by the event id. Can only be used if 'stream' is true.\n \"\"\"\n flag \"-s --stream\" help=\"Stream the interaction's events (replayed from the start for a finished interaction) instead of returning the status object. Defaults to true; use --stream=false for the status object.\" default=#true\n }\n}\n", + "": "name \"gemini-api\"\nbin \"gemini-api\"\nabout \"\"\"\n Gemini API: Use the Gemini Interactions API and managed-agent platform from the command line.\n\n Get started:\n Set GEMINI_API_KEY, or run: gemini-api configure\n Then run a model or managed agent: gemini-api agent --help\n Add --dry-run to preview any API call without sending it.\n \"\"\"\nversion \"0.4.1\"\nconfig {\n file \"~/.config/gemini-api/config.yaml\"\n}\nflag \"--usage\" help=\"Print the CLI Usage schema in KDL format\" global=#true\nflag \"--help-global\" help=\"Print global flags shared by every command\"\nflag \"-v --version\" help=\"Print the CLI version\"\nflag \"-o --output-format \" help=\"Specify the output format. Options: pretty, json, yaml, table, toon.\" global=#true config=\"output_format\" default=\"pretty\"\nflag \"--color \" help=\"Control colored output: auto (color when output is a TTY), always, or never. Respects NO_COLOR and FORCE_COLOR env vars.\" global=#true default=\"auto\"\nflag \"-q --jq \" help=\"Filter and transform output using a jq expression (e.g., '.name', '.items[] | .id')\" global=#true\nflag \"--raw-output\" help=\"Write --jq string results as raw text instead of JSON strings (like jq -r); non-string results stay JSON\" global=#true default=#true\nflag \"--server-url \" help=\"Override the default server URL\" global=#true\nflag \"-H --header \" help=\"Set a custom HTTP request header (format: \\\"Key: Value\\\"). Can be specified multiple times.\" global=#true var=#true\nflag \"--include-headers\" help=\"Include HTTP response headers in the output\" global=#true default=#false\nflag \"--timeout \" help=\"HTTP request timeout (e.g., 30s, 5m, 100ms)\" global=#true config=\"timeout\"\nflag \"--interactive\" help=\"Prompt for missing inputs and open guided configure/auth forms (forms fall back to line prompts on stdin off-TTY)\" global=#true default=#false\nflag \"--no-interactive\" help=\"Disable all interactive features (auto-prompting, explorer auto-launch, TUI forms)\" global=#true default=#false\nflag \"--dry-run\" help=\"Preview API requests without sending them (no network, no OS keychain). Human preview on stderr; with -o json or --jq, one JSON object per request on stdout. Local mutation commands (auth login, auth logout and configure) make no request: they skip prompts and writes and report a no-op (stderr, or one JSON object on stdout in the machine form)\" global=#true default=#false\nflag \"-d --debug\" help=\"Log request and response diagnostics to stderr\" global=#true default=#false\nflag \"--agent-mode\" help=\"Enable structured errors and default TOON output for AI coding agents.\" global=#true default=#false\nflag \"--no-retries\" help=\"Disable automatic retries (default: retries enabled with exponential backoff)\" global=#true config=\"no_retries\" default=#false hide=#true\nflag \"--retry-max-elapsed-time \" help=\"Maximum total time for retries (e.g., 30s, 5m). Default: 30s\" global=#true config=\"retry_max_elapsed_time\" hide=#true\nflag \"--retry-connection-errors\" help=\"Retry on connection errors (EOF, reset, etc.)\" global=#true config=\"retry_connection_errors\" default=#false hide=#true\nflag \"--retry-config \" help=\"Full retry config as JSON. Schema: {\\\"strategy\\\":\\\"backoff\\\",\\\"backoff\\\":{\\\"initialInterval\\\":500,\\\"maxInterval\\\":10000,\\\"exponent\\\":1.5,\\\"maxElapsedTime\\\":30000},\\\"retryConnectionErrors\\\":false}. Use strategy \\\"attempt-count-backoff\\\" with maxRetries for attempt-count retries. Times are in milliseconds.\" global=#true config=\"retry_config\" hide=#true\nflag \"--api-key \" help=\"Gemini API key sent as x-goog-api-key.\" global=#true env=\"GEMINI_API_KEY\" config=\"security.api_key\"\nflag \"--access-token \" help=\"OAuth access token sent as a bearer Authorization header.\" global=#true env=\"GEMINI_ACCESS_TOKEN\" config=\"security.access_token\"\nflag \"--api-version \" help=\"Which version of the API to use\" global=#true env=\"GEMINI_API_VERSION\" config=\"globals.api_version\" default=\"v1beta\"\nflag \"--api-revision \" help=\"Interactions API revision to request\" global=#true env=\"GEMINI_API_REVISION\" config=\"globals.api_revision\"\nflag \"--user-project \" help=\"Quota project header to send with Google GenAI API requests\" global=#true env=\"GEMINI_USER_PROJECT\" config=\"globals.user_project\"\ncmd \"agent\" help=\"Run interactions with Gemini models or managed agents, and manage agent definitions\" {\n cmd \"run\" help=\"Run an interaction with a Gemini model or a managed agent\" {\n arg \"input\" help=\"Prompt or task to send\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"--agent \" help=\"Managed agent to run (see \\\"gemini-api agent list\\\") (e.g. deep-research-pro-preview-12-2025, deep-research-preview-04-2026, deep-research-max-preview-04-2026, antigravity-preview-05-2026)\" {\n suggestions \"deep-research-pro-preview-12-2025\" \"deep-research-preview-04-2026\" \"deep-research-max-preview-04-2026\" \"antigravity-preview-05-2026\"\n }\n flag \"--background\" help=\"Return immediately with an interaction ID; poll with \\\"gemini-api agent status\\\"\"\n flag \"-m --model \" help=\"Model to run (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for one complete interaction (default: true)\" default=#true\n }\n cmd \"cancel\" help=\"Cancel an in-progress interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to cancel. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to cancel. (or pass it as the [id] argument)\"\n }\n cmd \"create\" help=\"Create a managed agent definition\" {\n flag \"-a --agent-config \" help=\"{ \\\"max_total_tokens\\\": string, \\\"model\\\": string }\"\n flag \"--base-agent \" help=\"The base agent to extend. [required]\"\n flag \"--base-environment \" help=\"{ \\\"env\\\": object, \\\"environment_id\\\": string, \\\"network\\\": object | string, \\\"sources\\\": object[] } | string\"\n flag \"--description \" help=\"Agent description for developers to quickly read and understand.\"\n flag \"-i --id \" help=\"The unique identifier for the agent. [required]\"\n flag \"-s --system-instruction \" help=\"System instruction for the agent.\"\n flag \"-t --tools \" help=\"The tools available to the agent. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to delete. (or pass it as the [id] argument)\"\n }\n cmd \"delete-interaction\" help=\"Delete an interaction by interaction ID\" {\n alias \"di\"\n arg \"id\" help=\"Required. The name of the interaction to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to delete. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to retrieve. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to retrieve. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List managed agent definitions\" {\n flag \"--page-size \" help=\"Maximum number of agents to return per page\"\n flag \"--page-token \" help=\"Page token from a previous agent list call\"\n flag \"--parent \" help=\"Parent resource to list agents from, as projects//locations/\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"status\" help=\"Get status and output of an interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to retrieve. (or use --id)\"\n flag \"--include-input\" help=\"If true, includes the input in the response.\"\n flag \"-i --id \" help=\"Required. The name of the interaction to retrieve. (or pass it as the [id] argument)\"\n flag \"-l --last-event-id \" help=\"\"\"\n If set, resumes the interaction stream from the chunk after the event\n marked by the event id. Can only be used if 'stream' is true.\n \"\"\"\n flag \"-s --stream\" help=\"Stream the interaction's events (replayed from the start for a finished interaction) instead of returning the status object. Defaults to true; use --stream=false for the status object.\" default=#true\n }\n}\ncmd \"analyze\" help=\"Ask questions about images, audio, video, documents, text files, or YouTube URLs (gemini-3.8-flash)\"\ncmd \"configure\" help=\"Configure authentication, global parameters, and preferences\"\ncmd \"credentials\" help=\"Manage stored credentials (bearer tokens, OAuth2, environment variables) that agents inject into outgoing HTTP requests\" {\n cmd \"create\" help=\"Create a credential\" {\n flag \"-b --body-param \" help=\"{ \\\"id\\\": string, \\\"injection_location\\\": string | string[], \\\"value\\\": string, ... } | { \\\"id\\\": string, \\\"token\\\": string, ... } | { \\\"client_id\\\": string, \\\"client_secret\\\": string, \\\"id\\\": string, \\\"refresh_token\\\": string, ... }\"\n flag \"--body-param.environment-variable \" help=\"EnvironmentVariableConfig variant as JSON\"\n flag \"--body-param.bearer-token \" help=\"HttpBearerConfig variant as JSON\"\n flag \"--body-param.bearer-token.header-name \" help=\"\"\"\n Optional. Header name to inject the token into. Defaults to\n 'Authorization'.\n \"\"\"\n flag \"--body-param.bearer-token.id \" help=\"Required. Unique identifier for the credential. [required]\"\n flag \"--body-param.bearer-token.prefix \" help=\"\"\"\n Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\n for no prefix.\n \"\"\"\n flag \"--body-param.bearer-token.token \" help=\"Required. Input only. The static bearer token. Write-only; never returned in responses. [required]\"\n flag \"--body-param.oauth2 \" help=\"OAuth2Config variant as JSON\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a credential by ID\" {\n arg \"id\" help=\"Credential ID, as given on create (or use --id)\"\n flag \"-i --id \" help=\"Credential ID, as given on create (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a credential by ID\" {\n arg \"id\" help=\"Credential ID, as given on create (or use --id)\"\n flag \"-i --id \" help=\"Credential ID, as given on create (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List credentials\" {\n flag \"--page-size \" help=\"Optional. Maximum number of credentials to return.\"\n flag \"--page-token \" help=\"Optional. Pagination token.\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"update\" help=\"Update a credential by ID\" {\n arg \"id\" help=\"Credential ID, as given on create (or use --id)\"\n flag \"-i --id \" help=\"Credential ID, as given on create (or pass it as the [id] argument)\"\n flag \"-u --update-mask \" help=\"Optional. The list of fields to update.\"\n flag \"-b --body-param \" help=\"{ \\\"injection_location\\\": string | string[], \\\"trusted_domains\\\": string[], \\\"value\\\": string } | { \\\"header_name\\\": string, \\\"prefix\\\": string, \\\"token\\\": string } | { \\\"client_id\\\": string, \\\"client_secret\\\": string, \\\"refresh_token\\\": string, \\\"scopes\\\": string[], ... }\"\n flag \"--body-param.environment-variable \" help=\"EnvironmentVariableUpdateConfig variant as JSON\"\n flag \"--body-param.bearer-token \" help=\"HttpBearerUpdateConfig variant as JSON\"\n flag \"--body-param.bearer-token.header-name \" help=\"\"\"\n Optional. Header name to inject the token into. Defaults to\n 'Authorization'.\n \"\"\"\n flag \"--body-param.bearer-token.prefix \" help=\"\"\"\n Optional. Prefix to prepend to the token. Defaults to 'Bearer'. Set to ''\n for no prefix.\n \"\"\"\n flag \"--body-param.bearer-token.token \" help=\"Optional. Input only. The static bearer token. Write-only; never returned in responses.\"\n flag \"--body-param.oauth2 \" help=\"OAuth2UpdateConfig variant as JSON\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"environments\" help=\"Manage sandbox environments and inspect environment files\" {\n cmd \"create\" help=\"Create a sandbox environment\" {\n flag \"-f --from-environment \" help=\"\"\"\n Optional. The source environment to copy/fork from.\n Format: 'environments/{environment_id}' or '{environment_id}'.\n When specified, 'sources' and 'env' must be empty.\n \"\"\"\n flag \"-n --network \" help=\"{ \\\"allowlist\\\": object[] | string } | CreateEnvironmentRequest_network_enum\"\n flag \"-s --sources \" help=\"Sources to be mounted into the environment. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a sandbox environment by ID\" {\n arg \"id\" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or use --id)\n \"\"\"\n flag \"-i --id \" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or pass it as the [id] argument)\n \"\"\"\n }\n cmd \"files\" help=\"List and inspect files in an environment's snapshot\" {\n cmd \"list\" help=\"List or inspect files in an environment snapshot\" {\n flag \"-e --environment \" help=\"Environment to read, as environments/ or a bare id [required]\"\n flag \"-p --path \" help=\"File or directory path relative to the workspace root, e.g. src; a leading slash is ignored [required]\"\n flag \"--page-size \" help=\"Optional. Maximum number of entries to return per page (for directory listing).\"\n flag \"--page-token \" help=\"Optional. Pagination token for directory listing.\"\n flag \"-r --recursive\" help=\"Optional. If true and the path is a directory, recursively lists all files.\"\n }\n }\n cmd \"get\" help=\"Get a sandbox environment by ID\" {\n arg \"id\" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or use --id)\n \"\"\"\n flag \"-i --id \" help=\"\"\"\n Required. Resource ID segment making up resource 'name'. It identifies the resource\n within its parent collection as described in https://google.aip.dev/122. (or pass it as the [id] argument)\n \"\"\"\n }\n cmd \"list\" help=\"List sandbox environments\" {\n flag \"--page-size \" help=\"\"\"\n Optional. Maximum number of environments to return.\n If unspecified, defaults to 50. Maximum is 1000.\n \"\"\"\n flag \"--page-token \" help=\"Optional. Pagination token.\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n}\ncmd \"files\" help=\"Upload, list, inspect, register, and delete files (48-hour retention)\" {\n cmd \"delete\" help=\"Delete a file\" {\n arg \"file\" help=\"File to delete, as files/ or a bare id (or use --file)\"\n flag \"-f --file \" help=\"File to delete, as files/ or a bare id (or pass it as the [file] argument)\"\n }\n cmd \"generated-files-list\" help=\"List files generated on the project's behalf\" {\n alias \"gfl\"\n flag \"--page-size \" help=\"Maximum number of generated files to return per page (default 10, maximum 50)\"\n flag \"--page-token \" help=\"Page token from a previous generated-files list call\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"get\" help=\"Get a file's metadata and processing state\" {\n arg \"file\" help=\"File to get, as files/ or a bare id (or use --file)\"\n flag \"-f --file \" help=\"File to get, as files/ or a bare id (or pass it as the [file] argument)\"\n }\n cmd \"list\" help=\"List uploaded and registered files\" {\n flag \"--page-size \" help=\"Maximum number of files to return per page (default 10, maximum 100)\"\n flag \"--page-token \" help=\"Page token from a previous files list call\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"register\" help=\"Register Google Cloud Storage objects as files without copying them\" {\n flag \"-u --uris \" help=\"Required. The gs:// URIs of the Google Cloud Storage objects to register. (JSON array) [required]\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"generate\" help=\"Text & multimodal generation (gemini-3.8-flash)\" {\n arg \"prompt\" help=\"Prompt to send to the model\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Model to use (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for a single complete result (default: true)\" default=#true\n}\ncmd \"image\" help=\"Generate or edit images (gemini-nano-banana-2.1)\" {\n arg \"prompt\" help=\"Image prompt\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Override the image model (e.g. gemini-3.1-flash-image, gemini-3.1-flash-lite-image, gemini-3-pro-image, nano-banana-pro-preview, default: gemini-nano-banana-2.1)\" default=\"gemini-nano-banana-2.1\" {\n suggestions \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-image\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\"\n }\n flag \"--out \" help=\"Write the image to this file (or into this directory). Default: ./gemini-image-{timestamp}-{rand}.{ext}\"\n flag \"--raw-response\" help=\"Print the raw API response instead of writing the image to a file\"\n}\ncmd \"models\" help=\"Show the curated offline model catalog; list/get query the live API\" {\n cmd \"get\" help=\"Get a model's live metadata (version, token limits, supported methods)\" {\n arg \"model\" help=\"Model id, e.g. gemini-flash-latest (or use --model)\"\n flag \"-m --model \" help=\"Model id, e.g. gemini-flash-latest (or pass it as the [model] argument)\"\n }\n cmd \"list\" help=\"List the models the API serves (live; bare \\\"models\\\" is the offline catalog)\" {\n flag \"--page-size \" help=\"Maximum number of models to return per page (default 50, maximum 1000)\"\n flag \"--page-token \" help=\"Page token from a previous models list call\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n}\ncmd \"music\" help=\"Music generation (lyria-3.5)\" {\n arg \"prompt\" help=\"Music prompt\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Override the music model (e.g. lyria-3-pro-preview, lyria-3-clip-preview, default: lyria-3.5)\" default=\"lyria-3.5\" {\n suggestions \"lyria-3.5\" \"lyria-3-pro-preview\" \"lyria-3-clip-preview\"\n }\n flag \"--out \" help=\"Write the audio to this file (or into this directory). Default: ./gemini-music-{timestamp}-{rand}.{ext}\"\n flag \"--raw-response\" help=\"Print the raw API response instead of writing the audio to a file\"\n}\ncmd \"transcribe\" help=\"Audio/video → text (timestamps, captions) (gemini-3.8-flash)\"\ncmd \"triggers\" help=\"Schedule and manage cron triggers that run managed agents\" {\n cmd \"delete\" help=\"Delete a trigger by ID\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a trigger by ID\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List triggers for a project\" {\n flag \"-f --filter \" help=\"Optional. Filter expression (e.g., by state).\"\n flag \"--page-size \" help=\"Optional. The maximum number of triggers to return per page.\"\n flag \"--page-token \" help=\"Optional. A page token from a previous ListTriggers call.\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"list-executions\" help=\"List executions for a trigger\" {\n alias \"le\"\n arg \"id\" help=\"Required. The trigger ID to list executions from. (or use --id)\"\n flag \"--page-size \" help=\"The maximum number of executions to return per page.\"\n flag \"--page-token \" help=\"A page token from a previous ListTriggerExecutions call.\"\n flag \"-i --id \" help=\"Required. The trigger ID to list executions from. (or pass it as the [id] argument)\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"run\" help=\"Run a trigger immediately\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n }\n cmd \"update\" help=\"Update a trigger by ID\" {\n arg \"id\" help=\"Required. Resource name of the trigger. (or use --id)\"\n flag \"-i --id \" help=\"Required. Resource name of the trigger. (or pass it as the [id] argument)\"\n flag \"--display-name \" help=\"Optional. The display name of the trigger.\"\n flag \"-s --status \" help=\"Optional. The status of the trigger. (options: active, paused, error)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"tts\" help=\"Text to speech (gemini-3.8-flash-tts)\"\ncmd \"video\" help=\"Generate & edit video conversationally (gemini-omni-1.1-flash)\" {\n arg \"prompt\" help=\"Video prompt\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"-m --model \" help=\"Override the video model (e.g. gemini-omni-flash-preview, default: gemini-omni-1.1-flash)\" default=\"gemini-omni-1.1-flash\" {\n suggestions \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--out \" help=\"Write the video to this file (or into this directory). Default: ./gemini-video-{timestamp}-{rand}.{ext}\"\n flag \"--raw-response\" help=\"Print the raw API response instead of writing the video to a file\"\n flag \"--async\" help=\"Return the operation handle without waiting for a terminal response\"\n flag \"--poll-interval \" help=\"Override the initial polling interval (positive Go duration, for example 500ms or 2s)\"\n flag \"--poll-timeout \" help=\"Override the overall polling deadline (positive Go duration, at least the effective poll interval)\"\n}\ncmd \"webhooks\" help=\"Manage webhook endpoints and signing secrets for event delivery\" {\n cmd \"create\" help=\"Create a webhook endpoint\" {\n flag \"-n --name \" help=\"Optional. The user-provided name of the webhook.\"\n flag \"-s --subscribed-events \" help=\"Required. The events that the webhook is subscribed to. (options: batch.succeeded, batch.expired, batch.failed, interaction.requires_action, interaction.completed, interaction.failed, video.generated) (JSON array) [required]\"\n flag \"-u --uri \" help=\"Required. The URI to which webhook events will be sent. [required]\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a webhook by ID\" {\n arg \"id\" help=\"Required. The ID of the webhook to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to delete. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a webhook by ID\" {\n arg \"id\" help=\"Required. The ID of the webhook to retrieve. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to retrieve. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List webhook endpoints\" {\n flag \"--page-size \" help=\"\"\"\n Optional. The maximum number of webhooks to return. The service may return\n fewer than this value. If unspecified, at most 50 webhooks will be\n returned. The maximum value is 1000.\n \"\"\"\n flag \"--page-token \" help=\"\"\"\n Optional. A page token, received from a previous 'ListWebhooks' call.\n Provide this to retrieve the subsequent page.\n \"\"\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"ping\" help=\"Send a ping event to a webhook\" {\n arg \"id\" help=\"Required. The ID of the webhook to ping. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to ping. (or pass it as the [id] argument)\"\n flag \"--body \" help=\"Request body as JSON. Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"rotate-signing-secret\" help=\"Rotate the signing secret for a webhook\" {\n alias \"rss\"\n arg \"id\" help=\"Required. The ID of the webhook for which to generate a signing secret. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook for which to generate a signing secret. (or pass it as the [id] argument)\"\n flag \"-r --revocation-behavior \" help=\"Optional. The revocation behavior for previous signing secrets. (options: revoke_previous_secrets_after_h24, revoke_previous_secrets_immediately)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"update\" help=\"Update a webhook by ID\" {\n arg \"id\" help=\"Required. The ID of the webhook to update. (or use --id)\"\n flag \"-i --id \" help=\"Required. The ID of the webhook to update. (or pass it as the [id] argument)\"\n flag \"--update-mask \" help=\"Optional list of fields to update.\"\n flag \"-n --name \" help=\"Optional. The user-provided name of the webhook.\"\n flag \"--state \" help=\"Optional. The state of the webhook. (options: enabled, disabled, disabled_due_to_failed_deliveries)\"\n flag \"--subscribed-events \" help=\"Optional. The events that the webhook is subscribed to. (options: batch.succeeded, batch.expired, batch.failed, interaction.requires_action, interaction.completed, interaction.failed, video.generated) (JSON array)\"\n flag \"--uri \" help=\"Optional. The URI to which webhook events will be sent.\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n}\ncmd \"auth\" help=\"Manage authentication credentials\" {\n cmd \"login\" help=\"Interactively configure authentication credentials\"\n cmd \"logout\" help=\"Clear all stored authentication credentials\"\n cmd \"whoami\" help=\"Display current authentication and global parameter configuration\"\n}\ncmd \"completion\" help=\"Generate the autocompletion script for the specified shell\" {\n cmd \"bash\" help=\"Generate the autocompletion script for bash\"\n cmd \"fish\" help=\"Generate the autocompletion script for fish\"\n cmd \"powershell\" help=\"Generate the autocompletion script for powershell\"\n cmd \"zsh\" help=\"Generate the autocompletion script for zsh\"\n}\ncmd \"explore\" help=\"Interactively browse and run commands\"\ncmd \"help\" help=\"Help about any command\"\ncmd \"version\" help=\"Print the CLI version\"\ncmd \"whoami\" help=\"Display current authentication and global parameter configuration\"\n", + "agent": "cmd \"agent\" help=\"Run interactions with Gemini models or managed agents, and manage agent definitions\" {\n cmd \"run\" help=\"Run an interaction with a Gemini model or a managed agent\" {\n arg \"input\" help=\"Prompt or task to send\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"--agent \" help=\"Managed agent to run (see \\\"gemini-api agent list\\\") (e.g. deep-research-pro-preview-12-2025, deep-research-preview-04-2026, deep-research-max-preview-04-2026, antigravity-preview-05-2026)\" {\n suggestions \"deep-research-pro-preview-12-2025\" \"deep-research-preview-04-2026\" \"deep-research-max-preview-04-2026\" \"antigravity-preview-05-2026\"\n }\n flag \"--background\" help=\"Return immediately with an interaction ID; poll with \\\"gemini-api agent status\\\"\"\n flag \"-m --model \" help=\"Model to run (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for one complete interaction (default: true)\" default=#true\n }\n cmd \"cancel\" help=\"Cancel an in-progress interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to cancel. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to cancel. (or pass it as the [id] argument)\"\n }\n cmd \"create\" help=\"Create a managed agent definition\" {\n flag \"-a --agent-config \" help=\"{ \\\"max_total_tokens\\\": string, \\\"model\\\": string }\"\n flag \"--base-agent \" help=\"The base agent to extend. [required]\"\n flag \"--base-environment \" help=\"{ \\\"env\\\": object, \\\"environment_id\\\": string, \\\"network\\\": object | string, \\\"sources\\\": object[] } | string\"\n flag \"--description \" help=\"Agent description for developers to quickly read and understand.\"\n flag \"-i --id \" help=\"The unique identifier for the agent. [required]\"\n flag \"-s --system-instruction \" help=\"System instruction for the agent.\"\n flag \"-t --tools \" help=\"The tools available to the agent. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n }\n cmd \"delete\" help=\"Delete a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to delete. (or pass it as the [id] argument)\"\n }\n cmd \"delete-interaction\" help=\"Delete an interaction by interaction ID\" {\n alias \"di\"\n arg \"id\" help=\"Required. The name of the interaction to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to delete. (or pass it as the [id] argument)\"\n }\n cmd \"get\" help=\"Get a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to retrieve. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to retrieve. (or pass it as the [id] argument)\"\n }\n cmd \"list\" help=\"List managed agent definitions\" {\n flag \"--page-size \" help=\"Maximum number of agents to return per page\"\n flag \"--page-token \" help=\"Page token from a previous agent list call\"\n flag \"--parent \" help=\"Parent resource to list agents from, as projects//locations/\"\n flag \"-a --all\" help=\"Automatically paginate and fetch all results (streams NDJSON for JSON output)\"\n flag \"--max-pages \" help=\"Maximum number of pages to fetch when using --all (0 = no limit)\" default=0\n }\n cmd \"status\" help=\"Get status and output of an interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to retrieve. (or use --id)\"\n flag \"--include-input\" help=\"If true, includes the input in the response.\"\n flag \"-i --id \" help=\"Required. The name of the interaction to retrieve. (or pass it as the [id] argument)\"\n flag \"-l --last-event-id \" help=\"\"\"\n If set, resumes the interaction stream from the chunk after the event\n marked by the event id. Can only be used if 'stream' is true.\n \"\"\"\n flag \"-s --stream\" help=\"Stream the interaction's events (replayed from the start for a finished interaction) instead of returning the status object. Defaults to true; use --stream=false for the status object.\" default=#true\n }\n}\n", "agent run": "cmd \"run\" help=\"Run an interaction with a Gemini model or a managed agent\" {\n arg \"input\" help=\"Prompt or task to send\" required=#true var=#true\n flag \"--body \" help=\"Request body as JSON (advanced; merges with intent inputs, rejecting duplicate keys). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n flag \"--agent \" help=\"Managed agent to run (see \\\"gemini-api agent list\\\") (e.g. deep-research-pro-preview-12-2025, deep-research-preview-04-2026, deep-research-max-preview-04-2026, antigravity-preview-05-2026)\" {\n suggestions \"deep-research-pro-preview-12-2025\" \"deep-research-preview-04-2026\" \"deep-research-max-preview-04-2026\" \"antigravity-preview-05-2026\"\n }\n flag \"--background\" help=\"Return immediately with an interaction ID; poll with \\\"gemini-api agent status\\\"\"\n flag \"-m --model \" help=\"Model to run (see \\\"gemini-api models\\\") (e.g. gemma-4-26b-a4b-it, gemma-4-31b-it, gemini-flash-latest, gemini-flash-lite-latest, ..., default: gemini-3.8-flash)\" default=\"gemini-3.8-flash\" {\n suggestions \"gemma-4-26b-a4b-it\" \"gemma-4-31b-it\" \"gemini-flash-latest\" \"gemini-flash-lite-latest\" \"gemini-pro-latest\" \"gemini-3.5-flash-lite\" \"gemini-2.5-flash-image\" \"gemini-3-flash-preview\" \"gemini-3.1-pro-preview\" \"gemini-3.1-pro-preview-customtools\" \"gemini-3.1-flash-lite\" \"gemini-3.1-flash-lite-image\" \"gemini-3-pro-image\" \"nano-banana-pro-preview\" \"gemini-3.1-flash-image\" \"gemini-nano-banana-2.1\" \"gemini-3.1-flash-tts-preview\" \"gemini-3.5-flash\" \"gemini-3.6-flash\" \"gemini-3.7-flash\" \"gemini-3.8-flash\" \"gemini-3.8-flash-tts\" \"gemini-3.8-flash-lite-tts\" \"lyria-3-clip-preview\" \"lyria-3-pro-preview\" \"gemini-robotics-er-2-preview\" \"lyria-3.5\" \"gemini-omni-1.1-flash\" \"gemini-omni-flash-preview\"\n }\n flag \"--stream\" help=\"Stream the reply as it is generated; use --stream=false for one complete interaction (default: true)\" default=#true\n}\n", "agent cancel": "cmd \"cancel\" help=\"Cancel an in-progress interaction by interaction ID\" {\n arg \"id\" help=\"Required. The name of the interaction to cancel. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to cancel. (or pass it as the [id] argument)\"\n}\n", - "agent create": "cmd \"create\" help=\"Create a managed agent definition\" {\n flag \"-a --agent-config \" help=\"{ \\\"max_total_tokens\\\": string, \\\"model\\\": string }\"\n flag \"--base-agent \" help=\"The base agent to extend. [required]\"\n flag \"--base-environment \" help=\"{ \\\"env\\\": object | string, \\\"environment_id\\\": string, \\\"network\\\": object | string, \\\"sources\\\": object[] } | string\"\n flag \"--description \" help=\"Agent description for developers to quickly read and understand.\"\n flag \"-i --id \" help=\"The unique identifier for the agent. [required]\"\n flag \"-s --system-instruction \" help=\"System instruction for the agent.\"\n flag \"-t --tools \" help=\"The tools available to the agent. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n}\n", + "agent create": "cmd \"create\" help=\"Create a managed agent definition\" {\n flag \"-a --agent-config \" help=\"{ \\\"max_total_tokens\\\": string, \\\"model\\\": string }\"\n flag \"--base-agent \" help=\"The base agent to extend. [required]\"\n flag \"--base-environment \" help=\"{ \\\"env\\\": object, \\\"environment_id\\\": string, \\\"network\\\": object | string, \\\"sources\\\": object[] } | string\"\n flag \"--description \" help=\"Agent description for developers to quickly read and understand.\"\n flag \"-i --id \" help=\"The unique identifier for the agent. [required]\"\n flag \"-s --system-instruction \" help=\"System instruction for the agent.\"\n flag \"-t --tools \" help=\"The tools available to the agent. (JSON array)\"\n flag \"--body \" help=\"Request body as JSON (alternative to individual flags). Can also be provided via stdin; @path reads a file, @- reads stdin to EOF. Use --schema to print the exact JSON Schema.\"\n flag \"--schema\" help=\"Print the exact JSON Schema of the request body and exit\"\n}\n", "agent delete": "cmd \"delete\" help=\"Delete a managed agent definition by ID\" {\n arg \"id\" help=\"Required. The name of the agent to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the agent to delete. (or pass it as the [id] argument)\"\n}\n", "agent delete-interaction": "cmd \"delete-interaction\" help=\"Delete an interaction by interaction ID\" {\n alias \"di\"\n arg \"id\" help=\"Required. The name of the interaction to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to delete. (or pass it as the [id] argument)\"\n}\n", "agent di": "cmd \"delete-interaction\" help=\"Delete an interaction by interaction ID\" {\n alias \"di\"\n arg \"id\" help=\"Required. The name of the interaction to delete. (or use --id)\"\n flag \"-i --id \" help=\"Required. The name of the interaction to delete. (or pass it as the [id] argument)\"\n}\n",